do not timeout if interface is receiving data
This commit is contained in:
parent
233fd8ed77
commit
8c07bdc3bc
|
@ -287,7 +287,7 @@ class TcpInterface(threading.Thread):
|
||||||
self.send_request({'method':'server.version', 'params':[ELECTRUM_VERSION, PROTOCOL_VERSION]})
|
self.send_request({'method':'server.version', 'params':[ELECTRUM_VERSION, PROTOCOL_VERSION]})
|
||||||
self.ping_time = time.time()
|
self.ping_time = time.time()
|
||||||
# stop interface if we have been waiting for more than 10 seconds
|
# stop interface if we have been waiting for more than 10 seconds
|
||||||
if self.unanswered_requests and time.time() - self.request_time > 10:
|
if self.unanswered_requests and time.time() - self.self.request_time > 10 and self.pipe.idle_time() > 10:
|
||||||
self.print_error("interface timeout", len(self.unanswered_requests))
|
self.print_error("interface timeout", len(self.unanswered_requests))
|
||||||
self.stop()
|
self.stop()
|
||||||
|
|
||||||
|
|
|
@ -323,10 +323,14 @@ class SocketPipe:
|
||||||
self.socket = socket
|
self.socket = socket
|
||||||
self.message = ''
|
self.message = ''
|
||||||
self.set_timeout(0.1)
|
self.set_timeout(0.1)
|
||||||
|
self.recv_time = time.time()
|
||||||
|
|
||||||
def set_timeout(self, t):
|
def set_timeout(self, t):
|
||||||
self.socket.settimeout(t)
|
self.socket.settimeout(t)
|
||||||
|
|
||||||
|
def idle_time(self):
|
||||||
|
return time.time() - self.recv_time
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
while True:
|
while True:
|
||||||
response, self.message = parse_json(self.message)
|
response, self.message = parse_json(self.message)
|
||||||
|
@ -356,6 +360,7 @@ class SocketPipe:
|
||||||
self.socket.close()
|
self.socket.close()
|
||||||
return None
|
return None
|
||||||
self.message += data
|
self.message += data
|
||||||
|
self.recv_time = time.time()
|
||||||
|
|
||||||
def send(self, request):
|
def send(self, request):
|
||||||
out = json.dumps(request) + '\n'
|
out = json.dumps(request) + '\n'
|
||||||
|
|
Loading…
Reference in New Issue