Improve connection status determination logic

This commit is contained in:
codeking 2025-11-18 06:44:57 +01:00
parent b887b8d2ff
commit 68bb55e7d4

View file

@ -402,16 +402,32 @@ class ConnectionController:
@staticmethod @staticmethod
def __test_connection(port_number: Optional[int] = None, timeout: float = 10.0): def __test_connection(port_number: Optional[int] = None, timeout: float = 10.0):
timeout = float(timeout)
proxies = None proxies = None
request_urls = [Constants.PING_URL]
timeout = float(timeout)
if port_number is not None: if port_number is not None:
proxies = ConnectionController.get_proxies(port_number) proxies = ConnectionController.get_proxies(port_number)
try: if os.environ.get('PING_URL') is None:
requests.get(Constants.PING_URL, timeout=timeout, proxies=proxies)
except requests.exceptions.RequestException: request_urls.extend([
raise ConnectionError('The connection could not be established.') 'https://hc1.simplifiedprivacy.net',
'https://hc2.simplifiedprivacy.org',
'https://hc3.hydraveil.net'
])
for request_url in request_urls:
try:
requests.get(request_url, timeout=timeout, proxies=proxies)
return None
except requests.exceptions.RequestException:
pass
raise ConnectionError('The connection could not be established.')
@staticmethod @staticmethod
def __should_renegotiate(profile: Union[SessionProfile, SystemProfile]): def __should_renegotiate(profile: Union[SessionProfile, SystemProfile]):