From 6b69bc210e3a19ad39110906210044a6e8d9abf9 Mon Sep 17 00:00:00 2001 From: Mike D <5084545+devmonkey22@users.noreply.github.com> Date: Mon, 16 Sep 2019 08:36:12 -0400 Subject: 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`. --- websocket/_http.py | 9 ++++----- 1 file 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: -- cgit v1.2.1