enable changes of protocol, proxy at runtime
This commit is contained in:
parent
1b4f26195b
commit
45b111e14c
|
@ -121,10 +121,9 @@ class NetworkDialog(QDialog):
|
||||||
|
|
||||||
if server:
|
if server:
|
||||||
host, port, protocol = server.split(':')
|
host, port, protocol = server.split(':')
|
||||||
self.set_protocol(protocol)
|
|
||||||
self.change_server(host, protocol)
|
self.change_server(host, protocol)
|
||||||
else:
|
|
||||||
self.set_protocol('s')
|
self.set_protocol(self.network.protocol)
|
||||||
|
|
||||||
self.servers_list_widget.connect(self.servers_list_widget,
|
self.servers_list_widget.connect(self.servers_list_widget,
|
||||||
SIGNAL('currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)'),
|
SIGNAL('currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)'),
|
||||||
|
|
|
@ -3,7 +3,7 @@ from util import format_satoshis, print_msg, print_json, print_error, set_verbos
|
||||||
from wallet import WalletSynchronizer, WalletStorage
|
from wallet import WalletSynchronizer, WalletStorage
|
||||||
from wallet_factory import WalletFactory as Wallet
|
from wallet_factory import WalletFactory as Wallet
|
||||||
from verifier import TxVerifier
|
from verifier import TxVerifier
|
||||||
from network import Network, DEFAULT_SERVERS, DEFAULT_PORTS, pick_random_server
|
from network import Network, DEFAULT_SERVERS, DEFAULT_PORTS
|
||||||
from interface import Interface
|
from interface import Interface
|
||||||
from simple_config import SimpleConfig
|
from simple_config import SimpleConfig
|
||||||
import bitcoin
|
import bitcoin
|
||||||
|
|
|
@ -35,8 +35,8 @@ def filter_protocol(servers, p):
|
||||||
return l
|
return l
|
||||||
|
|
||||||
|
|
||||||
def pick_random_server():
|
#def pick_random_server():
|
||||||
return random.choice( filter_protocol(DEFAULT_SERVERS,'s') )
|
# return random.choice( filter_protocol(DEFAULT_SERVERS,'s') )
|
||||||
|
|
||||||
|
|
||||||
class Network(threading.Thread):
|
class Network(threading.Thread):
|
||||||
|
@ -175,18 +175,21 @@ class Network(threading.Thread):
|
||||||
|
|
||||||
def set_parameters(self, host, port, protocol, proxy, auto_connect):
|
def set_parameters(self, host, port, protocol, proxy, auto_connect):
|
||||||
|
|
||||||
|
|
||||||
self.config.set_key("proxy", proxy, True)
|
|
||||||
self.proxy = proxy
|
|
||||||
|
|
||||||
self.config.set_key("protocol", protocol, True)
|
|
||||||
self.protocol = protocol
|
|
||||||
|
|
||||||
self.config.set_key('auto_cycle', auto_connect, True)
|
self.config.set_key('auto_cycle', auto_connect, True)
|
||||||
|
self.config.set_key("proxy", proxy, True)
|
||||||
|
self.config.set_key("protocol", protocol, True)
|
||||||
server = ':'.join([ host, port, protocol ])
|
server = ':'.join([ host, port, protocol ])
|
||||||
self.config.set_key("server", server, True)
|
self.config.set_key("server", server, True)
|
||||||
|
|
||||||
|
if self.proxy != proxy or self.protocol != protocol:
|
||||||
|
self.proxy = proxy
|
||||||
|
self.protocol = protocol
|
||||||
|
for i in self.interfaces.values(): i.stop()
|
||||||
|
if auto_connect:
|
||||||
|
self.interface = None
|
||||||
|
self.default_server = None
|
||||||
|
return
|
||||||
|
|
||||||
if auto_connect:
|
if auto_connect:
|
||||||
if not self.interface:
|
if not self.interface:
|
||||||
self.switch_to_random_interface()
|
self.switch_to_random_interface()
|
||||||
|
@ -202,12 +205,14 @@ class Network(threading.Thread):
|
||||||
self.switch_to_interface(random.choice(self.interfaces.values()))
|
self.switch_to_interface(random.choice(self.interfaces.values()))
|
||||||
|
|
||||||
def switch_to_interface(self, interface):
|
def switch_to_interface(self, interface):
|
||||||
print_error("switching to", interface.server)
|
server = interface.server
|
||||||
|
print_error("switching to", server)
|
||||||
self.interface = interface
|
self.interface = interface
|
||||||
h = self.heights.get(self.interface.server)
|
h = self.heights.get(server)
|
||||||
if h:
|
if h:
|
||||||
self.server_lag = self.blockchain.height - h
|
self.server_lag = self.blockchain.height - h
|
||||||
self.config.set_key('server', self.interface.server, False)
|
self.config.set_key('server', server, False)
|
||||||
|
self.default_server = server
|
||||||
self.send_subscriptions()
|
self.send_subscriptions()
|
||||||
self.trigger_callback('connected')
|
self.trigger_callback('connected')
|
||||||
|
|
||||||
|
@ -298,8 +303,6 @@ class Network(threading.Thread):
|
||||||
|
|
||||||
if i == self.interface:
|
if i == self.interface:
|
||||||
self.server_lag = self.blockchain.height - self.heights[i.server]
|
self.server_lag = self.blockchain.height - self.heights[i.server]
|
||||||
if self.server_lag:
|
|
||||||
print "on_header: lag", self.server_lag
|
|
||||||
self.trigger_callback('updated')
|
self.trigger_callback('updated')
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue