tnetwork: fix confusion between addresses and cached responses - electrum - Electrum Bitcoin wallet
 (HTM) git clone https://git.parazyd.org/electrum
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
       ---
 (DIR) commit f2c2f9d73816ac671f4bf5e6cc7b4d16550cdf9d
 (DIR) parent 2a92a310ba7811ff679491a9bec90e77287faf98
 (HTM) Author: ThomasV <thomasv@gitorious>
       Date:   Fri,  8 May 2015 17:59:33 +0200
       
       network: fix confusion between addresses and cached responses
       
       Diffstat:
         M lib/network.py                      |      16 ++++++++++------
       
       1 file changed, 10 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/lib/network.py b/lib/network.py
       t@@ -162,8 +162,11 @@ class Network(util.DaemonThread):
                if not os.path.exists(dir_path):
                    os.mkdir(dir_path)
        
       -        # address subscriptions and cached results
       -        self.addresses = {}
       +        # address subscriptions
       +        self.addresses = set()
       +        # cached results
       +        self.addr_responses = {}
       +
                self.connection_status = 'connecting'
                self.requests_queue = Queue.Queue()
                self.set_proxy(deserialize_proxy(self.config.get('proxy')))
       t@@ -209,6 +212,7 @@ class Network(util.DaemonThread):
                return self.interface and self.interface.is_connected()
        
            def send_subscriptions(self):
       +        self.print_error('sending subscriptions to', self.interface.server, len(self.addresses))
                for addr in self.addresses:
                    self.interface.send_request({'method':'blockchain.address.subscribe', 'params':[addr]})
                self.interface.send_request({'method':'server.banner','params':[]})
       t@@ -447,8 +451,9 @@ class Network(util.DaemonThread):
        
                if method == 'blockchain.address.subscribe':
                    addr = params[0]
       -            if addr in self.addresses:
       -                self.response_queue.put({'id':_id, 'result':self.addresses[addr]})
       +            self.addresses.add(addr)
       +            if addr in self.addr_responses:
       +                self.response_queue.put({'id':_id, 'result':self.addr_responses[addr]})
                        return
        
                try:
       t@@ -505,7 +510,6 @@ class Network(util.DaemonThread):
                        self.add_recent_server(i)
                        i.send_request({'method':'blockchain.headers.subscribe','params':[]})
                        if i == self.interface:
       -                    self.print_error('sending subscriptions to', self.interface.server)
                            self.send_subscriptions()
                            self.set_status('connected')
                    else:
       t@@ -555,7 +559,7 @@ class Network(util.DaemonThread):
            def on_address(self, i, r):
                addr = r.get('params')[0]
                result = r.get('result')
       -        self.addresses[addr] = result
       +        self.addr_responses[addr] = result
                self.response_queue.put(r)
        
            def get_header(self, tx_height):