fix disconnection error
This commit is contained in:
parent
1c707d05d3
commit
411a87e0a3
|
@ -252,7 +252,11 @@ class TcpInterface(threading.Thread):
|
|||
method = request.get('method')
|
||||
params = request.get('params')
|
||||
with self.lock:
|
||||
self.pipe.send({'id':self.message_id, 'method':method, 'params':params})
|
||||
try:
|
||||
self.pipe.send({'id':self.message_id, 'method':method, 'params':params})
|
||||
except socket.error:
|
||||
self.is_connected = False
|
||||
return
|
||||
self.unanswered_requests[self.message_id] = method, params, _id, queue
|
||||
self.message_id += 1
|
||||
if self.debug:
|
||||
|
@ -283,9 +287,6 @@ class TcpInterface(threading.Thread):
|
|||
self.s.close()
|
||||
self.is_connected = False
|
||||
|
||||
def is_up_to_date(self):
|
||||
return self.unanswered_requests == {}
|
||||
|
||||
def start(self, response_queue):
|
||||
self.response_queue = response_queue
|
||||
threading.Thread.start(self)
|
||||
|
|
|
@ -135,17 +135,12 @@ class Network(threading.Thread):
|
|||
def is_connected(self):
|
||||
return self.interface and self.interface.is_connected
|
||||
|
||||
def is_up_to_date(self):
|
||||
raise
|
||||
return self.interface.is_up_to_date()
|
||||
|
||||
def send_subscriptions(self):
|
||||
for addr in self.addresses:
|
||||
self.interface.send_request({'method':'blockchain.address.subscribe', 'params':[addr]})
|
||||
self.interface.send_request({'method':'server.banner','params':[]})
|
||||
self.interface.send_request({'method':'server.peers.subscribe','params':[]})
|
||||
|
||||
|
||||
def get_status_value(self, key):
|
||||
if key == 'status':
|
||||
value = self.connection_status
|
||||
|
@ -255,8 +250,13 @@ class Network(threading.Thread):
|
|||
|
||||
|
||||
def switch_to_random_interface(self):
|
||||
if self.interfaces:
|
||||
self.switch_to_interface(random.choice(self.interfaces.values()))
|
||||
while True:
|
||||
i = random.choice(self.interfaces.values())
|
||||
if i.is_connected:
|
||||
self.switch_to_interface(i)
|
||||
break
|
||||
else:
|
||||
time.sleep(0.1)
|
||||
|
||||
def switch_to_interface(self, interface):
|
||||
server = interface.server
|
||||
|
|
Loading…
Reference in New Issue