[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [stem/master] Drop dead code from test.network
commit 7af33123135355d0e7805f9688160d799103cb58
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date: Fri Mar 23 17:36:43 2018 -0700
Drop dead code from test.network
Chunks of this module are unused, so testing 'em.
---
test/network.py | 72 ++-------------------------------------------------------
1 file changed, 2 insertions(+), 70 deletions(-)
diff --git a/test/network.py b/test/network.py
index 05f51cd6..0278a8ad 100644
--- a/test/network.py
+++ b/test/network.py
@@ -11,19 +11,15 @@ the tor network.
+- SocksError - Reports problems returned by the SOCKS proxy.
Socks - Communicate through a SOCKS5 proxy with a socket interface
-
- SocksPatch - Force socket-using code to use test.network.Socks
"""
-import functools
import socket
import struct
+import stem
import stem.util.connection
import stem.util.str_tools
-from stem import ProtocolError, SocketError
-
# Store a reference to the original class so we can find it after
# monkey patching.
_socket_socket = socket.socket
@@ -247,70 +243,6 @@ class Socks(_socket_socket):
raise NotImplementedError
-class SocksPatch(object):
- """
- Monkey-patch **socket.socket** to use :class:`~test.network.Socks`, instead.
- Classes in the patched context (e.g. urllib.urlopen in the example below)
- do not use the SOCKS5 proxy for domain name resolution and such information
- may be leaked.
-
- ::
-
- import urllib
- from test.network import SocksPatch
-
- with SocksPatch(('127.0.0.1', 9050)):
- with urllib.urlopen('https://www.torproject.org') as f:
- for line in f.readline():
- print line
- """
-
- def __init__(self, *args, **kwargs):
- self._partial = functools.partial(Socks, *args, **kwargs)
-
- def __enter__(self):
- socket.socket = self._partial
- return self
-
- def __exit__(self, exit_type, value, traceback):
- socket.socket = _socket_socket
-
-
-def external_ip(host, port):
- """
- Returns the externally visible IP address when using a SOCKS4a proxy.
- Negotiates the socks connection, connects to ipconfig.me and requests
- http://ifconfig.me/ip to find out the externally visible IP.
-
- Supports only SOCKS4a proxies.
-
- :param str host: hostname/IP of the proxy server
- :param int port: port on which the proxy server is listening
-
- :returns: externally visible IP address, or None if it isn't able to
-
- :raises: :class:`stem.socket.SocketError`: unable to connect a socket to the socks server
- """
-
- try:
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect((host, int(port)))
- except Exception as exc:
- raise SocketError('Failed to connect to the socks server: ' + str(exc))
-
- try:
- negotiate_socks(sock, 'ifconfig.me', 80)
- sock.sendall(IP_REQUEST)
- response = sock.recv(1000)
-
- # everything after the blank line is the 'data' in a HTTP response
- # The response data for our request for request should be an IP address + '\n'
-
- return response[response.find('\r\n\r\n'):].strip()
- except Exception as exc:
- return None
-
-
def negotiate_socks(sock, host, port):
"""
Negotiate with a socks4a server. Closes the socket and raises an exception on
@@ -332,6 +264,6 @@ def negotiate_socks(sock, host, port):
if len(response) != 8 or response[0:2] != b'\x00\x5a':
sock.close()
- raise ProtocolError(ERROR_MSG.get(response[1], 'SOCKS server returned unrecognized error code'))
+ raise stem.ProtocolError(ERROR_MSG.get(response[1], 'SOCKS server returned unrecognized error code'))
return [socket.inet_ntoa(response[4:]), struct.unpack('!H', response[2:4])[0]]
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits