Have python3 properly handle connection refused exceptions.
carry remote IP address in socket connect exception object
This commit is contained in:
@@ -421,6 +421,7 @@ class WebSocket(object):
|
|||||||
if not addrinfo_list:
|
if not addrinfo_list:
|
||||||
raise WebSocketException("Host not found.: " + hostname + ":" + str(port))
|
raise WebSocketException("Host not found.: " + hostname + ":" + str(port))
|
||||||
|
|
||||||
|
err = None
|
||||||
for addrinfo in addrinfo_list:
|
for addrinfo in addrinfo_list:
|
||||||
family = addrinfo[0]
|
family = addrinfo[0]
|
||||||
self.sock = socket.socket(family)
|
self.sock = socket.socket(family)
|
||||||
@@ -434,14 +435,16 @@ class WebSocket(object):
|
|||||||
try:
|
try:
|
||||||
self.sock.connect(address)
|
self.sock.connect(address)
|
||||||
except socket.error as error:
|
except socket.error as error:
|
||||||
|
error.remote_ip = str(address[0])
|
||||||
if error.errno in (errno.ECONNREFUSED, ):
|
if error.errno in (errno.ECONNREFUSED, ):
|
||||||
|
err = error
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
raise
|
raise
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
raise error
|
raise err
|
||||||
|
|
||||||
if proxy_host:
|
if proxy_host:
|
||||||
self._tunnel(hostname, port)
|
self._tunnel(hostname, port)
|
||||||
|
Reference in New Issue
Block a user