@ -336,22 +336,16 @@ class Network(util.DaemonThread):
self . interfaces = { }
self . interfaces = { }
def set_parameters ( self , host , port , protocol , proxy , auto_connect ) :
def set_parameters ( self , host , port , protocol , proxy , auto_connect ) :
server = serialize_server ( host , port , protocol )
if self . proxy != proxy or self . protocol != protocol :
if self . proxy != proxy or self . protocol != protocol :
# Restart the network defaulting to the given server
self . stop_network ( )
self . stop_network ( )
self . default_server = server
self . start_network ( protocol , proxy )
self . start_network ( protocol , proxy )
if auto_connect :
elif self . default_server != server :
return
self . switch_to_interface ( server )
elif auto_connect and ( not self . is_connected ( ) or self . server_is_lagging ( ) ) :
if auto_connect :
self . switch_to_random_interface ( )
if not self . is_connected ( ) :
self . switch_to_random_interface ( )
else :
if self . server_is_lagging ( ) :
self . stop_interface ( )
else :
server_str = serialize_server ( host , port , protocol )
self . set_server ( server_str )
def switch_to_random_interface ( self ) :
def switch_to_random_interface ( self ) :
if self . interfaces :
if self . interfaces :
@ -364,6 +358,8 @@ class Network(util.DaemonThread):
self . default_server = server
self . default_server = server
if server in self . interfaces :
if server in self . interfaces :
self . print_error ( " switching to " , server )
self . print_error ( " switching to " , server )
# stop any current interface in order to terminate subscriptions
self . stop_interface ( )
self . interface = self . interfaces [ server ]
self . interface = self . interfaces [ server ]
self . send_subscriptions ( )
self . send_subscriptions ( )
self . set_status ( ' connected ' )
self . set_status ( ' connected ' )
@ -373,8 +369,9 @@ class Network(util.DaemonThread):
self . start_interface ( server )
self . start_interface ( server )
def stop_interface ( self ) :
def stop_interface ( self ) :
self . interface . stop ( )
if self . interface :
self . interface = None
self . interface . stop ( )
self . interface = None
def set_server ( self , server ) :
def set_server ( self , server ) :
if self . default_server == server and self . is_connected ( ) :
if self . default_server == server and self . is_connected ( ) :
@ -383,10 +380,6 @@ class Network(util.DaemonThread):
if self . protocol != deserialize_server ( server ) [ 2 ] :
if self . protocol != deserialize_server ( server ) [ 2 ] :
return
return
# stop the interface in order to terminate subscriptions
if self . is_connected ( ) :
self . stop_interface ( )
self . switch_to_interface ( server )
self . switch_to_interface ( server )