Tormanager only disconnect if connected
This commit is contained in:
parent
8220272953
commit
fd895d0ef5
1 changed files with 8 additions and 4 deletions
|
@ -37,6 +37,7 @@ class TorManager(object):
|
||||||
self.conn = None
|
self.conn = None
|
||||||
self.lock = RLock()
|
self.lock = RLock()
|
||||||
self.starting = True
|
self.starting = True
|
||||||
|
self.connecting = True
|
||||||
self.event_started = gevent.event.AsyncResult()
|
self.event_started = gevent.event.AsyncResult()
|
||||||
|
|
||||||
if config.tor == "disable":
|
if config.tor == "disable":
|
||||||
|
@ -136,6 +137,7 @@ class TorManager(object):
|
||||||
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
|
||||||
self.log.info("Connecting to Tor Controller %s:%s" % (self.ip, self.port))
|
self.log.info("Connecting to Tor Controller %s:%s" % (self.ip, self.port))
|
||||||
|
self.connecting = True
|
||||||
try:
|
try:
|
||||||
with self.lock:
|
with self.lock:
|
||||||
conn.connect((self.ip, self.port))
|
conn.connect((self.ip, self.port))
|
||||||
|
@ -173,7 +175,8 @@ class TorManager(object):
|
||||||
return self.conn
|
return self.conn
|
||||||
|
|
||||||
def disconnect(self):
|
def disconnect(self):
|
||||||
self.conn.close()
|
if self.conn:
|
||||||
|
self.conn.close()
|
||||||
self.conn = None
|
self.conn = None
|
||||||
|
|
||||||
def startOnions(self):
|
def startOnions(self):
|
||||||
|
@ -248,9 +251,10 @@ class TorManager(object):
|
||||||
break
|
break
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self.log.error("Tor send error: %s, reconnecting..." % err)
|
self.log.error("Tor send error: %s, reconnecting..." % err)
|
||||||
self.disconnect()
|
if not self.connecting:
|
||||||
time.sleep(1)
|
self.disconnect()
|
||||||
self.connect()
|
time.sleep(1)
|
||||||
|
self.connect()
|
||||||
back = None
|
back = None
|
||||||
if back:
|
if back:
|
||||||
self.log.debug("< %s" % back.strip())
|
self.log.debug("< %s" % back.strip())
|
||||||
|
|
Loading…
Reference in a new issue