ssl.SSLError strerror is always None on python 2.7.9 rc1.
This commit is contained in:
liris
2014-12-02 09:37:21 +09:00
parent 67c871869d
commit fdb5238c40

View File

@@ -217,6 +217,13 @@ def _get_proxy_info(hostname, is_secure, **options):
return None, 0, None
def _extract_err_message(exception):
message = getattr(exception, 'strerror', '')
if not message:
message = getattr(exception, 'message', '')
return message
def create_connection(url, timeout=None, **options):
"""
@@ -904,11 +911,11 @@ class WebSocket(object):
try:
return self.sock.send(data)
except socket.timeout as e:
message = getattr(e, 'strerror', getattr(e, 'message', ''))
message = _extract_err_message(e)
raise WebSocketTimeoutException(message)
except Exception as e:
message = getattr(e, 'strerror', getattr(e, 'message', ''))
if message and isinstance(message, six.text_type) and "timed out" in message:
message = _extract_err_message(e)
if message and "timed out" in message:
raise WebSocketTimeoutException(message)
else:
raise
@@ -920,10 +927,10 @@ class WebSocket(object):
try:
bytes = self.sock.recv(bufsize)
except socket.timeout as e:
message = getattr(e, 'strerror', getattr(e, 'message', ''))
message = _extract_err_message(e)
raise WebSocketTimeoutException(message)
except SSLError as e:
message = getattr(e, 'strerror', getattr(e, 'message', ''))
message = _extract_err_message(e)
if message == "The read operation timed out":
raise WebSocketTimeoutException(message)
else: