From b88d9f9d066c2ae245cdc8735814ee916f9bd539 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Wed, 5 Mar 2025 16:25:42 +0000 Subject: [PATCH] network: follow-up ProxySettings. make sure probe_tor cleans-up. follow-up https://github.com/spesmilo/electrum/commit/2aa427b4bf54b0185e6b4539115f92fcd0a05fad --- electrum/network.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/electrum/network.py b/electrum/network.py index 1dec07f9b..b860fc226 100644 --- a/electrum/network.py +++ b/electrum/network.py @@ -258,14 +258,16 @@ class ProxySettings: @classmethod def probe_tor(cls, on_finished: Callable[[str | None, int | None], None]): async def detect_task(finished: Callable[[str | None, int | None], None]): - net_addr = await detect_tor_socks_proxy() - if net_addr is None: - finished('', -1) - else: - host = net_addr[0] - port = net_addr[1] - finished(host, port) - cls.probe_fut = None + try: + net_addr = await detect_tor_socks_proxy() + if net_addr is None: + finished('', -1) + else: + host = net_addr[0] + port = net_addr[1] + finished(host, port) + finally: + cls.probe_fut = None if cls.probe_fut: # one probe at a time return @@ -397,7 +399,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): self._allowed_protocols = {PREFERRED_NETWORK_PROTOCOL} self.proxy = ProxySettings() - self.is_proxy_tor = None + self.is_proxy_tor = None # type: Optional[bool] # tri-state. None means unknown. self._init_parameters_from_config() self.taskgroup = None @@ -441,7 +443,6 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): self.fee_estimates = FeeTimeEstimates() self.last_time_fee_estimates_requested = 0 # zero ensures immediate fees - def has_internet_connection(self) -> bool: """Our guess whether the device has Internet-connectivity.""" return self._has_ever_managed_to_connect_to_server