From fd895d0ef562d6f0bca8384f1f319d19982bed11 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Sat, 16 Mar 2019 00:08:04 +0100 Subject: [PATCH] Tormanager only disconnect if connected --- src/Tor/TorManager.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Tor/TorManager.py b/src/Tor/TorManager.py index 8eab3767..46e2083a 100644 --- a/src/Tor/TorManager.py +++ b/src/Tor/TorManager.py @@ -37,6 +37,7 @@ class TorManager(object): self.conn = None self.lock = RLock() self.starting = True + self.connecting = True self.event_started = gevent.event.AsyncResult() if config.tor == "disable": @@ -136,6 +137,7 @@ class TorManager(object): conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.log.info("Connecting to Tor Controller %s:%s" % (self.ip, self.port)) + self.connecting = True try: with self.lock: conn.connect((self.ip, self.port)) @@ -173,7 +175,8 @@ class TorManager(object): return self.conn def disconnect(self): - self.conn.close() + if self.conn: + self.conn.close() self.conn = None def startOnions(self): @@ -248,9 +251,10 @@ class TorManager(object): break except Exception as err: self.log.error("Tor send error: %s, reconnecting..." % err) - self.disconnect() - time.sleep(1) - self.connect() + if not self.connecting: + self.disconnect() + time.sleep(1) + self.connect() back = None if back: self.log.debug("< %s" % back.strip())