tnetwork: fix switching interface (restart old one) - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 9607854b67d3a8a59b569c904c85466fbb34a8bc DIR parent 62e352a2a8e61ae930b6a09b1457d5419afea35c HTML Author: SomberNight <somber.night@protonmail.com> Date: Mon, 10 Dec 2018 08:03:42 +0100 network: fix switching interface (restart old one) follow-up b3ff173b4507e8325c65d607a4547320ba2c8798 connection_down was killing the already restarted old interface Diffstat: M electrum/interface.py | 2 +- M electrum/network.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) --- DIR diff --git a/electrum/interface.py b/electrum/interface.py t@@ -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 DIR diff --git a/electrum/network.py b/electrum/network.py t@@ -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