diff --git a/RNS/Interfaces/BackboneInterface.py b/RNS/Interfaces/BackboneInterface.py index af883d2..c2d1f93 100644 --- a/RNS/Interfaces/BackboneInterface.py +++ b/RNS/Interfaces/BackboneInterface.py @@ -588,9 +588,7 @@ class BackboneClientInterface(Interface): self.teardown() break - try: - self.connect() - + try: self.connect() except Exception as e: RNS.log("Connection attempt for "+str(self)+" failed: "+str(e), RNS.LOG_DEBUG) @@ -648,7 +646,8 @@ class BackboneClientInterface(Interface): self.online = False if self.initiator and not self.detached: RNS.log("The socket for "+str(self)+" was closed, attempting to reconnect...", RNS.LOG_WARNING) - self.reconnect() + def job(): self.reconnect() + threading.Thread(target=job, daemon=True).start() else: RNS.log("The socket for remote client "+str(self)+" was closed.", RNS.LOG_VERBOSE) self.teardown() @@ -659,7 +658,8 @@ class BackboneClientInterface(Interface): if self.initiator: RNS.log("Attempting to reconnect...", RNS.LOG_WARNING) - self.reconnect() + def job(): self.reconnect() + threading.Thread(target=job, daemon=True).start() else: self.teardown() diff --git a/RNS/Interfaces/LocalInterface.py b/RNS/Interfaces/LocalInterface.py index 445ba28..4b069c8 100644 --- a/RNS/Interfaces/LocalInterface.py +++ b/RNS/Interfaces/LocalInterface.py @@ -254,6 +254,9 @@ class LocalClientInterface(Interface): if self.is_connected_to_shared_instance and not self.detached: RNS.log("Socket for "+str(self)+" was closed, attempting to reconnect...", RNS.LOG_WARNING) RNS.Transport.shared_connection_disappeared() + # TODO: Potentially run this in a thread, but since if we get here, + # there's no other connectivity left to block anyway, it might be + # unnecessary. self.reconnect() else: self.teardown(nowarning=True) @@ -276,6 +279,9 @@ class LocalClientInterface(Interface): if self.is_connected_to_shared_instance and not self.detached: RNS.log("Socket for "+str(self)+" was closed, attempting to reconnect...", RNS.LOG_WARNING) RNS.Transport.shared_connection_disappeared() + # TODO: Potentially run this in a thread, but since if we get here, + # there's no other connectivity left to block anyway, it might be + # unnecessary. self.reconnect() else: self.teardown(nowarning=True)