diff --git a/src/sakia/services/network.py b/src/sakia/services/network.py index d2e4d2adf435f443d4689b8299f0d2dc347803f4..9fd850ff1af1016e9b13d1dcf152850c87f19a2d 100644 --- a/src/sakia/services/network.py +++ b/src/sakia/services/network.py @@ -126,7 +126,6 @@ class NetworkService(QObject): """ self._connectors.append(node_connector) node_connector.changed.connect(self.handle_change, type=Qt.UniqueConnection|Qt.QueuedConnection) - node_connector.error.connect(self.handle_error, type=Qt.UniqueConnection|Qt.QueuedConnection) node_connector.identity_changed.connect(self.handle_identity_change, type=Qt.UniqueConnection|Qt.QueuedConnection) node_connector.neighbour_found.connect(self.handle_new_node, type=Qt.UniqueConnection|Qt.QueuedConnection) self._logger.debug("{:} connected".format(node_connector.node.pubkey[:5])) @@ -153,7 +152,15 @@ class NetworkService(QObject): await connector.init_session() connector.refresh() if not first_loop: + if connector.node.state in (Node.OFFLINE, Node.CORRUPTED) \ + and connector.node.last_state_change + 3600 < time.time(): + connector.disconnect() + self._processor.delete_node(connector.node) + self._connectors.remove(connector) + self.node_removed.emit(connector.node) + await asyncio.sleep(15) + first_loop = False await asyncio.sleep(15) @@ -219,15 +226,6 @@ class NetworkService(QObject): self._processor.update_node(connector.node) self.node_changed.emit(connector.node) - def handle_error(self): - node_connector = self.sender() - if node_connector.node.state in (Node.OFFLINE, Node.CORRUPTED) \ - and node_connector.node.last_state_change + 3600 < time.time(): - node_connector.disconnect() - self._processor.delete_node(node_connector.node) - self._connectors.remove(node_connector) - self.node_removed.emit(node_connector.node) - def handle_change(self): node_connector = self.sender() self._processor.update_node(node_connector.node)