diff --git a/src/sakia/services/network.py b/src/sakia/services/network.py index 9fd850ff1af1016e9b13d1dcf152850c87f19a2d..6bb0530ee128e7459aa9ab8724ce7d78c73fd275 100644 --- a/src/sakia/services/network.py +++ b/src/sakia/services/network.py @@ -147,18 +147,20 @@ class NetworkService(QObject): asyncio.ensure_future(self.discovery_loop()) self.refresh_once() while self.continue_crawling(): + if not first_loop: + for connector in self._connectors: + 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) + for connector in self._connectors: if self.continue_crawling(): 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