Browse Source

fixes, resend_subscriptions

283
thomasv 12 years ago
parent
commit
77871b97af
  1. 14
      gui/network_dialog.py
  2. 4
      lib/blockchain.py
  3. 2
      lib/interface.py
  4. 15
      lib/network.py

14
gui/network_dialog.py

@ -44,10 +44,18 @@ class NetworkDialog(QDialog):
self.protocol = None
if parent:
if interface.is_connected:
status = _("Connected to")+" %s"%(interface.host) + "\n%d "%(network.blockchain.height)+_("blocks")
n = len(network.interfaces)
if n:
status = _("Connected to %d servers")%n + ", %d "%(network.blockchain.height) + _("blocks")
else:
status = _("Not connected")
if interface.is_connected:
status += "\n" + _("History server:") + " %s"%(interface.host)
else:
status += "\n" + _("History server is disconnected")
server = interface.server
else:
import random
@ -229,6 +237,6 @@ class NetworkDialog(QDialog):
self.config.set_key("proxy", proxy, True)
self.config.set_key("server", server, True)
self.interface.set_server(server, proxy)
self.network.set_server(server, proxy)
self.config.set_key('auto_cycle', self.autocycle_cb.isChecked(), True)
return True

4
lib/blockchain.py

@ -93,8 +93,8 @@ class Blockchain(threading.Thread):
self.network.trigger_callback('updated')
h = self.servers_height.get(self.network.interface.server)
if h is not None and h < height:
print "server is lagging", height - i.network.interface.height
if h is not None and h < height - 1:
print "server is lagging", height, h
self.network.interface.stop()

2
lib/interface.py

@ -129,7 +129,7 @@ class Interface(threading.Thread):
with self.lock:
method, params, channel = self.unanswered_requests.pop(msg_id)
response_queue = self.responses[channel]
response_queue.put({'method':method, 'params':params, 'error':error, 'id':msg_id})
response_queue.put((self,{'method':method, 'params':params, 'error':error, 'id':msg_id}))
return

15
lib/network.py

@ -78,6 +78,15 @@ class Network(threading.Thread):
return self.interface.is_connected
def set_server(self, server, proxy):
subscriptions = self.interface.subscriptions
self.default_server = server
self.start_interface(server)
self.interface = self.interfaces[server]
self.resend_subscriptions(subscriptions)
self.trigger_callback('disconnecting') # for actively disconnecting
def run(self):
self.blockchain.start()
@ -122,10 +131,10 @@ class Network(threading.Thread):
with self.lock: return self.running
def resend_subscriptions(self):
for channel, messages in self.subscriptions.items():
def resend_subscriptions(self, subscriptions):
for channel, messages in subscriptions.items():
if messages:
self.send(messages, channel)
self.interface.send(messages, channel)

Loading…
Cancel
Save