|
@ -144,9 +144,7 @@ def pick_random_server(hostmap=None, *, allowed_protocols: Iterable[str], |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NetworkParameters(NamedTuple): |
|
|
class NetworkParameters(NamedTuple): |
|
|
host: str |
|
|
server: ServerAddr |
|
|
port: str |
|
|
|
|
|
protocol: str |
|
|
|
|
|
proxy: Optional[dict] |
|
|
proxy: Optional[dict] |
|
|
auto_connect: bool |
|
|
auto_connect: bool |
|
|
oneserver: bool = False |
|
|
oneserver: bool = False |
|
@ -483,10 +481,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): |
|
|
util.trigger_callback(key, self.get_status_value(key)) |
|
|
util.trigger_callback(key, self.get_status_value(key)) |
|
|
|
|
|
|
|
|
def get_parameters(self) -> NetworkParameters: |
|
|
def get_parameters(self) -> NetworkParameters: |
|
|
server = self.default_server |
|
|
return NetworkParameters(server=self.default_server, |
|
|
return NetworkParameters(host=server.host, |
|
|
|
|
|
port=str(server.port), |
|
|
|
|
|
protocol=server.protocol, |
|
|
|
|
|
proxy=self.proxy, |
|
|
proxy=self.proxy, |
|
|
auto_connect=self.auto_connect, |
|
|
auto_connect=self.auto_connect, |
|
|
oneserver=self.oneserver) |
|
|
oneserver=self.oneserver) |
|
@ -585,13 +580,12 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): |
|
|
util.trigger_callback('proxy_set', self.proxy) |
|
|
util.trigger_callback('proxy_set', self.proxy) |
|
|
|
|
|
|
|
|
@log_exceptions |
|
|
@log_exceptions |
|
|
async def set_parameters(self, net_params: NetworkParameters): # TODO |
|
|
async def set_parameters(self, net_params: NetworkParameters): |
|
|
proxy = net_params.proxy |
|
|
proxy = net_params.proxy |
|
|
proxy_str = serialize_proxy(proxy) |
|
|
proxy_str = serialize_proxy(proxy) |
|
|
host, port, protocol = net_params.host, net_params.port, net_params.protocol |
|
|
server = net_params.server |
|
|
# sanitize parameters |
|
|
# sanitize parameters |
|
|
try: |
|
|
try: |
|
|
server = ServerAddr(host, port, protocol=protocol) |
|
|
|
|
|
if proxy: |
|
|
if proxy: |
|
|
proxy_modes.index(proxy['mode']) + 1 |
|
|
proxy_modes.index(proxy['mode']) + 1 |
|
|
int(proxy['port']) |
|
|
int(proxy['port']) |
|
@ -1112,10 +1106,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): |
|
|
chosen_iface = random.choice(interfaces_on_selected_chain) # type: Interface |
|
|
chosen_iface = random.choice(interfaces_on_selected_chain) # type: Interface |
|
|
# switch to server (and save to config) |
|
|
# switch to server (and save to config) |
|
|
net_params = self.get_parameters() |
|
|
net_params = self.get_parameters() |
|
|
server = chosen_iface.server |
|
|
net_params = net_params._replace(server=chosen_iface.server) |
|
|
net_params = net_params._replace(host=server.host, |
|
|
|
|
|
port=str(server.port), |
|
|
|
|
|
protocol=server.protocol) |
|
|
|
|
|
await self.set_parameters(net_params) |
|
|
await self.set_parameters(net_params) |
|
|
|
|
|
|
|
|
async def follow_chain_given_server(self, server: ServerAddr) -> None: |
|
|
async def follow_chain_given_server(self, server: ServerAddr) -> None: |
|
@ -1126,9 +1117,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): |
|
|
self._set_preferred_chain(iface.blockchain) |
|
|
self._set_preferred_chain(iface.blockchain) |
|
|
# switch to server (and save to config) |
|
|
# switch to server (and save to config) |
|
|
net_params = self.get_parameters() |
|
|
net_params = self.get_parameters() |
|
|
net_params = net_params._replace(host=server.host, |
|
|
net_params = net_params._replace(server=server) |
|
|
port=str(server.port), |
|
|
|
|
|
protocol=server.protocol) |
|
|
|
|
|
await self.set_parameters(net_params) |
|
|
await self.set_parameters(net_params) |
|
|
|
|
|
|
|
|
def get_local_height(self): |
|
|
def get_local_height(self): |
|
|