Browse Source

network: fix switching interface (restart old one)

follow-up b3ff173b45
connection_down was killing the already restarted old interface
master
SomberNight 7 years ago
parent
commit
9607854b67
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 2
      electrum/interface.py
  2. 10
      electrum/network.py

2
electrum/interface.py

@ -253,7 +253,7 @@ class Interface(PrintError):
except GracefulDisconnect as e: except GracefulDisconnect as e:
self.print_error("disconnecting gracefully. {}".format(e)) self.print_error("disconnecting gracefully. {}".format(e))
finally: finally:
await self.network.connection_down(self.server) await self.network.connection_down(self)
self.got_disconnected.set_result(1) self.got_disconnected.set_result(1)
return wrapper_func return wrapper_func

10
electrum/network.py

@ -638,16 +638,16 @@ class Network(PrintError):
self.recent_servers = self.recent_servers[0:20] self.recent_servers = self.recent_servers[0:20]
self._save_recent_servers() 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. '''A connection to server either went down, or was never made.
We distinguish by whether it is in self.interfaces.''' We distinguish by whether it is in self.interfaces.'''
if not interface: return
server = interface.server
self.disconnected_servers.add(server) self.disconnected_servers.add(server)
if server == self.default_server: if server == self.default_server:
self._set_status('disconnected') self._set_status('disconnected')
interface = self.interfaces.get(server, None) await self._close_interface(interface)
if interface: self.trigger_callback('network_updated')
await self._close_interface(interface)
self.trigger_callback('network_updated')
@ignore_exceptions # do not kill main_taskgroup @ignore_exceptions # do not kill main_taskgroup
@log_exceptions @log_exceptions

Loading…
Cancel
Save