fixes, resend_subscriptions
This commit is contained in:
@@ -44,10 +44,18 @@ class NetworkDialog(QDialog):
|
|||||||
self.protocol = None
|
self.protocol = None
|
||||||
|
|
||||||
if parent:
|
if parent:
|
||||||
if interface.is_connected:
|
n = len(network.interfaces)
|
||||||
status = _("Connected to")+" %s"%(interface.host) + "\n%d "%(network.blockchain.height)+_("blocks")
|
if n:
|
||||||
|
status = _("Connected to %d servers")%n + ", %d "%(network.blockchain.height) + _("blocks")
|
||||||
else:
|
else:
|
||||||
status = _("Not connected")
|
status = _("Not connected")
|
||||||
|
|
||||||
|
if interface.is_connected:
|
||||||
|
status += "\n" + _("History server:") + " %s"%(interface.host)
|
||||||
|
else:
|
||||||
|
status += "\n" + _("History server is disconnected")
|
||||||
|
|
||||||
|
|
||||||
server = interface.server
|
server = interface.server
|
||||||
else:
|
else:
|
||||||
import random
|
import random
|
||||||
@@ -229,6 +237,6 @@ class NetworkDialog(QDialog):
|
|||||||
|
|
||||||
self.config.set_key("proxy", proxy, True)
|
self.config.set_key("proxy", proxy, True)
|
||||||
self.config.set_key("server", server, 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)
|
self.config.set_key('auto_cycle', self.autocycle_cb.isChecked(), True)
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ class Blockchain(threading.Thread):
|
|||||||
self.network.trigger_callback('updated')
|
self.network.trigger_callback('updated')
|
||||||
|
|
||||||
h = self.servers_height.get(self.network.interface.server)
|
h = self.servers_height.get(self.network.interface.server)
|
||||||
if h is not None and h < height:
|
if h is not None and h < height - 1:
|
||||||
print "server is lagging", height - i.network.interface.height
|
print "server is lagging", height, h
|
||||||
self.network.interface.stop()
|
self.network.interface.stop()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ class Interface(threading.Thread):
|
|||||||
with self.lock:
|
with self.lock:
|
||||||
method, params, channel = self.unanswered_requests.pop(msg_id)
|
method, params, channel = self.unanswered_requests.pop(msg_id)
|
||||||
response_queue = self.responses[channel]
|
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
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,15 @@ class Network(threading.Thread):
|
|||||||
return self.interface.is_connected
|
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):
|
def run(self):
|
||||||
self.blockchain.start()
|
self.blockchain.start()
|
||||||
|
|
||||||
@@ -122,10 +131,10 @@ class Network(threading.Thread):
|
|||||||
with self.lock: return self.running
|
with self.lock: return self.running
|
||||||
|
|
||||||
|
|
||||||
def resend_subscriptions(self):
|
def resend_subscriptions(self, subscriptions):
|
||||||
for channel, messages in self.subscriptions.items():
|
for channel, messages in subscriptions.items():
|
||||||
if messages:
|
if messages:
|
||||||
self.send(messages, channel)
|
self.interface.send(messages, channel)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user