Browse Source

move interfaces maintenance to its own function

283
ThomasV 10 years ago
parent
commit
a1d1999545
  1. 26
      lib/network.py

26
lib/network.py

@ -170,6 +170,9 @@ class Network(util.DaemonThread):
self.connection_status = 'connecting' self.connection_status = 'connecting'
self.requests_queue = Queue.Queue() self.requests_queue = Queue.Queue()
self.set_proxy(deserialize_proxy(self.config.get('proxy'))) self.set_proxy(deserialize_proxy(self.config.get('proxy')))
# retry times
self.server_retry_time = time.time()
self.nodes_retry_time = time.time()
def read_recent_servers(self): def read_recent_servers(self):
if not self.config.path: if not self.config.path:
@ -464,21 +467,15 @@ class Network(util.DaemonThread):
self.requests_queue.put(request) self.requests_queue.put(request)
time.sleep(0.1) time.sleep(0.1)
def run(self): def check_interfaces(self):
server_retry_time = time.time()
nodes_retry_time = time.time()
while self.is_running():
try:
i, response = self.queue.get(timeout=0.1)
except Queue.Empty:
now = time.time() now = time.time()
if len(self.interfaces) + len(self.pending_servers) < self.num_server: if len(self.interfaces) + len(self.pending_servers) < self.num_server:
self.start_random_interface() self.start_random_interface()
if not self.interfaces: if not self.interfaces:
if now - nodes_retry_time > NODES_RETRY_INTERVAL: if now - self.nodes_retry_time > NODES_RETRY_INTERVAL:
self.print_error('network: retrying connections') self.print_error('network: retrying connections')
self.disconnected_servers = set([]) self.disconnected_servers = set([])
nodes_retry_time = now self.nodes_retry_time = now
if not self.interface.is_connected(): if not self.interface.is_connected():
if self.config.get('auto_cycle'): if self.config.get('auto_cycle'):
if self.interfaces: if self.interfaces:
@ -488,13 +485,20 @@ class Network(util.DaemonThread):
self.switch_to_interface(self.interfaces[self.default_server]) self.switch_to_interface(self.interfaces[self.default_server])
else: else:
if self.default_server in self.disconnected_servers: if self.default_server in self.disconnected_servers:
if now - server_retry_time > SERVER_RETRY_INTERVAL: if now - self.server_retry_time > SERVER_RETRY_INTERVAL:
self.disconnected_servers.remove(self.default_server) self.disconnected_servers.remove(self.default_server)
server_retry_time = now self.server_retry_time = now
else: else:
if self.default_server not in self.pending_servers: if self.default_server not in self.pending_servers:
self.print_error("forcing reconnection") self.print_error("forcing reconnection")
self.interface = self.start_interface(self.default_server) self.interface = self.start_interface(self.default_server)
def run(self):
while self.is_running():
self.check_interfaces()
try:
i, response = self.queue.get(timeout=0.1)
except Queue.Empty:
continue continue
if response is not None: if response is not None:

Loading…
Cancel
Save