Enhanced internet connection checks by falling back to HTTPS protocol when HTTP (port 80) fails // Resolve #4980

This commit is contained in:
Ivan Kravets committed 2024-09-23 15:32:23 +03:00
1 parent 4230b223d2
commit e6ae18ab0d
2 files changed
+12 -1

No files matched your search

+11 -1
View File
@@ -190,10 +190,11 @@ class HTTPClient:
@util.memoized(expire="10s")
def _internet_on():
timeout = 2
use_proxy = is_proxy_set()
socket.setdefaulttimeout(timeout)
for host in __check_internet_hosts__:
try:
if is_proxy_set():
if use_proxy:
requests.get("http://%s" % host, allow_redirects=False, timeout=timeout)
return True
# try to resolve `host` for both AF_INET and AF_INET6, and then try to connect
@@ -203,6 +204,15 @@ def _internet_on():
return True
except: # pylint: disable=bare-except
pass
# falling back to HTTPs, issue #4980
for host in __check_internet_hosts__:
try:
requests.get("https://%s" % host, allow_redirects=False, timeout=timeout)
except requests.exceptions.RequestException:
pass
return True
return False