switch_to_interface() to start interface if not connected
Two places currently have switch-to-or-start-interface logic. Put that common logic into switch_to_interface().
This commit is contained in:
parent
16b23a1832
commit
31ffd4b381
|
@ -359,15 +359,18 @@ class Network(util.DaemonThread):
|
||||||
self.switch_to_interface(server)
|
self.switch_to_interface(server)
|
||||||
|
|
||||||
def switch_to_interface(self, server):
|
def switch_to_interface(self, server):
|
||||||
'''Switch to server as our interface, it must be in self.interfaces'''
|
'''Switch to server as our interface. If not already connected, start a
|
||||||
assert server in self.interfaces
|
connection - we will switch on receipt of the connection notification'''
|
||||||
self.print_error("switching to", server)
|
|
||||||
self.interface = self.interfaces[server]
|
|
||||||
self.default_server = server
|
self.default_server = server
|
||||||
self.send_subscriptions()
|
if server in self.interfaces:
|
||||||
self.set_status('connected')
|
self.print_error("switching to", server)
|
||||||
self.notify('updated')
|
self.interface = self.interfaces[server]
|
||||||
|
self.send_subscriptions()
|
||||||
|
self.set_status('connected')
|
||||||
|
self.notify('updated')
|
||||||
|
else:
|
||||||
|
self.print_error("starting %s; will switch once connected" % server)
|
||||||
|
self.start_interface(server)
|
||||||
|
|
||||||
def stop_interface(self):
|
def stop_interface(self):
|
||||||
self.interface.stop()
|
self.interface.stop()
|
||||||
|
@ -384,13 +387,7 @@ class Network(util.DaemonThread):
|
||||||
if self.is_connected():
|
if self.is_connected():
|
||||||
self.stop_interface()
|
self.stop_interface()
|
||||||
|
|
||||||
# start interface
|
self.switch_to_interface(server)
|
||||||
self.default_server = server
|
|
||||||
|
|
||||||
if server in self.interfaces.keys():
|
|
||||||
self.switch_to_interface(server)
|
|
||||||
else:
|
|
||||||
self.start_interface(server)
|
|
||||||
|
|
||||||
|
|
||||||
def add_recent_server(self, i):
|
def add_recent_server(self, i):
|
||||||
|
@ -500,17 +497,12 @@ class Network(util.DaemonThread):
|
||||||
if self.config.get('auto_cycle'):
|
if self.config.get('auto_cycle'):
|
||||||
self.switch_to_random_interface()
|
self.switch_to_random_interface()
|
||||||
else:
|
else:
|
||||||
if self.default_server in self.interfaces.keys():
|
if self.default_server in self.disconnected_servers:
|
||||||
self.switch_to_interface(self.default_server)
|
if now - self.server_retry_time > SERVER_RETRY_INTERVAL:
|
||||||
|
self.disconnected_servers.remove(self.default_server)
|
||||||
|
self.server_retry_time = now
|
||||||
else:
|
else:
|
||||||
if self.default_server in self.disconnected_servers:
|
self.switch_to_interface(self.default_server)
|
||||||
if now - self.server_retry_time > SERVER_RETRY_INTERVAL:
|
|
||||||
self.disconnected_servers.remove(self.default_server)
|
|
||||||
self.server_retry_time = now
|
|
||||||
else:
|
|
||||||
if self.default_server not in self.pending_servers:
|
|
||||||
self.print_error("forcing reconnection")
|
|
||||||
self.start_interface(self.default_server)
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
while self.is_running():
|
while self.is_running():
|
||||||
|
|
Loading…
Reference in New Issue