diff --git a/electrum/interface.py b/electrum/interface.py index 0d05ae798..596ecfcaf 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -253,7 +253,7 @@ class Interface(PrintError): except GracefulDisconnect as e: self.print_error("disconnecting gracefully. {}".format(e)) finally: - await self.network.connection_down(self.server) + await self.network.connection_down(self) self.got_disconnected.set_result(1) return wrapper_func diff --git a/electrum/network.py b/electrum/network.py index 2230fe920..e089c8e6f 100644 --- a/electrum/network.py +++ b/electrum/network.py @@ -638,16 +638,16 @@ class Network(PrintError): self.recent_servers = self.recent_servers[0:20] self._save_recent_servers() - async def connection_down(self, server): + async def connection_down(self, interface: Interface): '''A connection to server either went down, or was never made. We distinguish by whether it is in self.interfaces.''' + if not interface: return + server = interface.server self.disconnected_servers.add(server) if server == self.default_server: self._set_status('disconnected') - interface = self.interfaces.get(server, None) - if interface: - await self._close_interface(interface) - self.trigger_callback('network_updated') + await self._close_interface(interface) + self.trigger_callback('network_updated') @ignore_exceptions # do not kill main_taskgroup @log_exceptions