network: fix switching interface (restart old one)

follow-up b3ff173b45
connection_down was killing the already restarted old interface
This commit is contained in:
SomberNight 2018-12-10 08:03:42 +01:00
parent 62e352a2a8
commit 9607854b67
No known key found for this signature in database
GPG key ID: B33B5F232C6271E9
2 changed files with 6 additions and 6 deletions

View file

@ -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

View file

@ -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