From d8453384abe6c2747edaf25b47ea1831a2982415 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Tue, 3 Oct 2017 14:30:19 +0200 Subject: [PATCH] Separate socket creation and connection to be able to cancel it --- src/Connection/Connection.py | 3 ++- src/Tor/TorManager.py | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Connection/Connection.py b/src/Connection/Connection.py index 57ccebec..db874839 100644 --- a/src/Connection/Connection.py +++ b/src/Connection/Connection.py @@ -104,7 +104,8 @@ class Connection(object): raise Exception("Can't connect to onion addresses, no Tor controller present") self.sock = self.server.tor_manager.createSocket(self.ip, self.port) else: - self.sock = socket.create_connection((self.ip, int(self.port))) + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.sock.connect((self.ip, int(self.port))) # Implicit SSL if self.cert_pin: diff --git a/src/Tor/TorManager.py b/src/Tor/TorManager.py index 59c5989c..b9726683 100644 --- a/src/Tor/TorManager.py +++ b/src/Tor/TorManager.py @@ -304,9 +304,7 @@ class TorManager(object): self.log.debug("Creating new Tor socket to %s:%s" % (onion, port)) if config.tor == "always": # Every socket is proxied by default, in this mode sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect((onion, int(port))) else: sock = socks.socksocket() sock.set_proxy(socks.SOCKS5, self.proxy_ip, self.proxy_port) - sock.connect((onion, int(port))) return sock \ No newline at end of file