Fixed bug where switching servers causes assert failure.
This commit is contained in:
parent
3fe5ba85b2
commit
6dfb9e12c7
|
@ -313,7 +313,7 @@ class WalletSynchronizer(threading.Thread):
|
||||||
self.loop = loop
|
self.loop = loop
|
||||||
self.init_interface()
|
self.init_interface()
|
||||||
|
|
||||||
def init_interface(self):
|
def init_interface(self, servers_loaded_callback=None):
|
||||||
try:
|
try:
|
||||||
host, port, protocol = self.wallet.server.split(':')
|
host, port, protocol = self.wallet.server.split(':')
|
||||||
port = int(port)
|
port = int(port)
|
||||||
|
@ -332,6 +332,7 @@ class WalletSynchronizer(threading.Thread):
|
||||||
InterfaceClass = TcpStratumInterface
|
InterfaceClass = TcpStratumInterface
|
||||||
|
|
||||||
self.interface = InterfaceClass(host, port, self.wallet.debug_server)
|
self.interface = InterfaceClass(host, port, self.wallet.debug_server)
|
||||||
|
self.interface.servers_loaded_callback = servers_loaded_callback
|
||||||
self.wallet.interface = self.interface
|
self.wallet.interface = self.interface
|
||||||
|
|
||||||
|
|
||||||
|
@ -363,7 +364,7 @@ class WalletSynchronizer(threading.Thread):
|
||||||
if ports and version:
|
if ports and version:
|
||||||
servers.append( (host, ports) )
|
servers.append( (host, ports) )
|
||||||
self.interface.servers = servers
|
self.interface.servers = servers
|
||||||
assert self.interface.servers_loaded_callback
|
assert self.interface.servers_loaded_callback is not None
|
||||||
self.interface.servers_loaded_callback()
|
self.interface.servers_loaded_callback()
|
||||||
|
|
||||||
elif method == 'blockchain.address.subscribe':
|
elif method == 'blockchain.address.subscribe':
|
||||||
|
@ -427,7 +428,8 @@ class WalletSynchronizer(threading.Thread):
|
||||||
self.wallet.trigger_callbacks()
|
self.wallet.trigger_callbacks()
|
||||||
if self.loop:
|
if self.loop:
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
self.init_interface()
|
# Server has been changed. Copy callback for new interface.
|
||||||
|
self.init_interface(self.interface.servers_loaded_callback)
|
||||||
self.start_interface()
|
self.start_interface()
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -350,7 +350,7 @@ class Wallet:
|
||||||
# raise an error if the format isnt correct
|
# raise an error if the format isnt correct
|
||||||
a,b,c = server.split(':')
|
a,b,c = server.split(':')
|
||||||
b = int(b)
|
b = int(b)
|
||||||
assert c in ['t','h','n']
|
assert c in ['t', 'h', 'n']
|
||||||
# set the server
|
# set the server
|
||||||
if server != self.server:
|
if server != self.server:
|
||||||
self.server = server
|
self.server = server
|
||||||
|
|
Loading…
Reference in New Issue