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

View file

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