network.send method
authorThomasV <thomasv@gitorious>
Mon, 11 Nov 2013 15:18:40 +0000 (16:18 +0100)
committerThomasV <thomasv@gitorious>
Mon, 11 Nov 2013 15:18:40 +0000 (16:18 +0100)
lib/network.py
lib/verifier.py

index beabae3..5c49042 100644 (file)
@@ -97,6 +97,14 @@ class Network(threading.Thread):
             self.interface.send( messages, callback )
 
 
+    def send(self, messages, callback):
+        if self.interface and self.interface.is_connected:
+            self.interface.send( messages, callback )
+            return True
+        else:
+            return False
+
+
     def register_callback(self, event, callback):
         with self.lock:
             if not self.callbacks.get(event):
index e2509bb..c4fff31 100644 (file)
@@ -33,7 +33,6 @@ class TxVerifier(threading.Thread):
         self.storage = storage
         self.network = network
         self.blockchain = network.blockchain
-        self.interface = network.interface
         self.transactions    = {}                                 # requested verifications (with height sent by the requestor)
         self.verified_tx     = storage.get('verified_tx3',{})      # height, timestamp of verified transactions
         self.merkle_roots    = storage.get('merkle_roots',{})      # hashed by me
@@ -106,8 +105,8 @@ class TxVerifier(threading.Thread):
                 if tx_hash not in self.verified_tx:
                     if self.merkle_roots.get(tx_hash) is None and tx_hash not in requested_merkle:
                         print_error('requesting merkle', tx_hash)
-                        self.interface.send([ ('blockchain.transaction.get_merkle',[tx_hash, tx_height]) ], lambda i,r: self.queue.put(r))
-                        requested_merkle.append(tx_hash)
+                        if self.network.send([ ('blockchain.transaction.get_merkle',[tx_hash, tx_height]) ], lambda i,r: self.queue.put(r)):
+                            requested_merkle.append(tx_hash)
 
             try:
                 r = self.queue.get(timeout=1)