1
0

print_error methods. request timeout for interface

This commit is contained in:
ThomasV
2015-03-12 21:39:05 +01:00
parent c28915d122
commit f32f1183fc
2 changed files with 56 additions and 35 deletions

View File

@@ -9,7 +9,7 @@ import traceback
import socks
import socket
from util import user_dir, print_error, print_msg
import util
from bitcoin import *
import interface
from blockchain import Blockchain
@@ -166,17 +166,19 @@ class Network(threading.Thread):
self.addresses = {}
self.connection_status = 'connecting'
self.requests_queue = Queue.Queue()
self.set_proxy(deserialize_proxy(self.config.get('proxy')))
def print_error(self, *msg):
util.print_error("[network]", *msg)
def get_server_height(self):
return self.heights.get(self.default_server, 0)
def server_is_lagging(self):
h = self.get_server_height()
if not h:
print_error('no height for main interface')
self.print_error('no height for main interface')
return False
lag = self.get_local_height() - self.get_server_height()
return lag > 1
@@ -297,7 +299,7 @@ class Network(threading.Thread):
return
if self.proxy != proxy or self.protocol != protocol:
print_error('restarting network')
self.print_error('restarting network')
for i in self.interfaces.values():
i.stop()
self.interfaces.pop(i.server)
@@ -329,7 +331,7 @@ class Network(threading.Thread):
def switch_to_interface(self, interface):
server = interface.server
print_error("switching to", server)
self.print_error("switching to", server)
self.interface = interface
self.config.set_key('server', server, False)
self.default_server = server
@@ -386,7 +388,7 @@ class Network(threading.Thread):
def new_blockchain_height(self, blockchain_height, i):
if self.is_connected():
if self.server_is_lagging():
print_error( "Server is lagging", blockchain_height, self.get_server_height())
self.print_error("Server is lagging", blockchain_height, self.get_server_height())
if self.config.get('auto_cycle'):
self.set_server(i.server)
self.notify('updated')
@@ -429,7 +431,7 @@ class Network(threading.Thread):
except BaseException as e:
out['error'] = str(e)
traceback.print_exc(file=sys.stdout)
print_error("network error", str(e))
self.print_error("network error", str(e))
self.response_queue.put(out)
return
@@ -444,7 +446,7 @@ class Network(threading.Thread):
self.interface.send_request(request)
except:
# put it back in the queue
print_error("warning: interface not ready for", request)
self.print_error("warning: interface not ready for", request)
self.requests_queue.put(request)
time.sleep(0.1)
@@ -458,7 +460,7 @@ class Network(threading.Thread):
self.start_random_interface()
if not self.interfaces:
if time.time() - disconnected_time > DISCONNECTED_RETRY_INTERVAL:
print_error('network: retrying connections')
self.print_error('network: retrying connections')
self.disconnected_servers = set([])
disconnected_time = time.time()
if not self.interface.is_connected:
@@ -470,7 +472,7 @@ class Network(threading.Thread):
self.switch_to_interface(self.interfaces[self.default_server])
else:
if self.default_server not in self.disconnected_servers and self.default_server not in self.pending_servers:
print_error("forcing reconnection")
self.print_error("forcing reconnection")
self.interface = self.start_interface(self.default_server)
continue
@@ -487,7 +489,7 @@ class Network(threading.Thread):
self.add_recent_server(i)
i.send_request({'method':'blockchain.headers.subscribe','params':[]})
if i == self.interface:
print_error('sending subscriptions to', self.interface.server)
self.print_error('sending subscriptions to', self.interface.server)
self.send_subscriptions()
self.set_status('connected')
else:
@@ -499,7 +501,7 @@ class Network(threading.Thread):
self.set_status('disconnected')
self.disconnected_servers.add(i.server)
print_error("Network: Stopping interfaces")
self.print_error("stopping interfaces")
for i in self.interfaces.values():
i.stop()
@@ -519,7 +521,7 @@ class Network(threading.Thread):
if i == self.interface:
if self.server_is_lagging() and self.config.get('auto_cycle'):
print_error( "Server lagging, stopping interface")
self.print_error("Server lagging, stopping interface")
self.stop_interface()
self.notify('updated')
@@ -539,7 +541,7 @@ class Network(threading.Thread):
self.response_queue.put(r)
def stop(self):
print_error("stopping network")
self.print_error("stopping network")
with self.lock:
self.running = False