summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike D <5084545+devmonkey22@users.noreply.github.com>2019-09-16 08:36:12 -0400
committerGitHub <noreply@github.com>2019-09-16 08:36:12 -0400
commit6b69bc210e3a19ad39110906210044a6e8d9abf9 (patch)
treeaced71209013831edb2b4f3a444745cbbf1cbf89
parent3c25814664fef5b78716ed8841123ed1c0d17824 (diff)
downloadwebsocket-client-6b69bc210e3a19ad39110906210044a6e8d9abf9.tar.gz
Resolve issue opening socket to intranet on Windows 10 with no proxy settings but behind proxy
Fix for #571. Always provide `socket.SOCK_STREAM` to `socket.getaddrinfo`.
-rw-r--r--websocket/_http.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/websocket/_http.py b/websocket/_http.py
index 5b9a26d..119077b 100644
--- a/websocket/_http.py
+++ b/websocket/_http.py
@@ -138,16 +138,15 @@ def _get_addrinfo_list(hostname, port, is_secure, proxy):
phost, pport, pauth = get_proxy_info(
hostname, is_secure, proxy.host, proxy.port, proxy.auth, proxy.no_proxy)
try:
+ # when running on windows 10, getaddrinfo without socktype returns a socktype 0.
+ # This generates an error exception: `_on_error: exception Socket type must be stream or datagram, not 0`
+ # or `OSError: [Errno 22] Invalid argument` when creating socket. Force the socket type to SOCK_STREAM.
if not phost:
addrinfo_list = socket.getaddrinfo(
- hostname, port, 0, 0, socket.SOL_TCP)
+ hostname, port, 0, socket.SOCK_STREAM, socket.SOL_TCP)
return addrinfo_list, False, None
else:
pport = pport and pport or 80
- # when running on windows 10, the getaddrinfo used above
- # returns a socktype 0. This generates an error exception:
- #_on_error: exception Socket type must be stream or datagram, not 0
- # Force the socket type to SOCK_STREAM
addrinfo_list = socket.getaddrinfo(phost, pport, 0, socket.SOCK_STREAM, socket.SOL_TCP)
return addrinfo_list, True, pauth
except socket.gaierror as e: