tNetwork: Fix switch_to_interface (check that interface is connected) - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit 6ea04e2d47e39332bae600c7c899ab3ae1b52a81
DIR parent bcde4163314f3b3577f3c61300819ed927b21591
HTML Author: ThomasV <thomasv@gitorious>
Date: Wed, 10 Jun 2015 18:24:57 +0200
Network: Fix switch_to_interface (check that interface is connected)
Diffstat:
M lib/network.py | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
---
DIR diff --git a/lib/network.py b/lib/network.py
t@@ -358,18 +358,22 @@ class Network(util.DaemonThread):
happen on receipt of the connection notification. Do nothing
if server already is our interface.'''
self.default_server = server
- if server in self.interfaces:
- if self.interface != self.interfaces[server]:
- self.print_error("switching to", server)
- # stop any current interface in order to terminate subscriptions
- self.stop_interface()
- self.interface = self.interfaces[server]
- self.send_subscriptions()
- self.set_status('connected')
- self.notify('updated')
- else:
+ if server not in self.interfaces:
self.print_error("starting %s; will switch once connected" % server)
self.start_interface(server)
+ return
+ i = self.interfaces[server]
+ if not i.is_connected():
+ # do nothing; we will switch once connected
+ return
+ if self.interface != i:
+ self.print_error("switching to", server)
+ # stop any current interface in order to terminate subscriptions
+ self.stop_interface()
+ self.interface = i
+ self.send_subscriptions()
+ self.set_status('connected')
+ self.notify('updated')
def stop_interface(self):
if self.interface: