tMerge pull request #1222 from kyuupichan/if_notification - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit 8620019f9240b7ab00b9636cc2b6e8d0c39bcd52 (DIR) parent 5bd22d237858353c4f1b35ea1887f2524752b85a (HTM) Author: ThomasV <electrumdev@gmail.com> Date: Thu, 21 May 2015 15:05:07 +0200 Merge pull request #1222 from kyuupichan/if_notification Put interface notification handling in its own function. Diffstat: M lib/network.py | 43 ++++++++++++++++--------------- 1 file changed, 22 insertions(+), 21 deletions(-) --- (DIR) diff --git a/lib/network.py b/lib/network.py t@@ -411,6 +411,25 @@ class Network(util.DaemonThread): self.set_server(i.server) self.notify('updated') + def process_if_notification(self, i): + if i.server in self.pending_servers: + self.pending_servers.remove(i.server) + + if i.is_connected(): + self.add_interface(i) + self.add_recent_server(i) + i.send_request({'method':'blockchain.headers.subscribe','params':[]}) + if i == self.interface: + self.send_subscriptions() + self.set_status('connected') + else: + if i.server in self.interfaces: + self.remove_interface(i) + if i.server in self.heights: + self.heights.pop(i.server) + if i == self.interface: + self.set_status('disconnected') + self.disconnected_servers.add(i.server) def process_response(self, i, response): # the id comes from the daemon or the network proxy t@@ -504,29 +523,11 @@ class Network(util.DaemonThread): except Queue.Empty: continue - if response is not None: - self.process_response(i, response) - continue - # if response is None it is a notification about the interface - if i.server in self.pending_servers: - self.pending_servers.remove(i.server) - - if i.is_connected(): - self.add_interface(i) - self.add_recent_server(i) - i.send_request({'method':'blockchain.headers.subscribe','params':[]}) - if i == self.interface: - self.send_subscriptions() - self.set_status('connected') + if response is None: + self.process_if_notification(i) else: - if i.server in self.interfaces: - self.remove_interface(i) - if i.server in self.heights: - self.heights.pop(i.server) - if i == self.interface: - self.set_status('disconnected') - self.disconnected_servers.add(i.server) + self.process_response(i, response) self.print_error("stopping interfaces") for i in self.interfaces.values():