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 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): def create_connection(url, timeout=None, **options):
""" """
@@ -904,11 +911,11 @@ class WebSocket(object):
try: try:
return self.sock.send(data) return self.sock.send(data)
except socket.timeout as e: except socket.timeout as e:
message = getattr(e, 'strerror', getattr(e, 'message', '')) message = _extract_err_message(e)
raise WebSocketTimeoutException(message) raise WebSocketTimeoutException(message)
except Exception as e: except Exception as e:
message = getattr(e, 'strerror', getattr(e, 'message', '')) message = _extract_err_message(e)
if message and isinstance(message, six.text_type) and "timed out" in message: if message and "timed out" in message:
raise WebSocketTimeoutException(message) raise WebSocketTimeoutException(message)
else: else:
raise raise
@@ -920,10 +927,10 @@ class WebSocket(object):
try: try:
bytes = self.sock.recv(bufsize) bytes = self.sock.recv(bufsize)
except socket.timeout as e: except socket.timeout as e:
message = getattr(e, 'strerror', getattr(e, 'message', '')) message = _extract_err_message(e)
raise WebSocketTimeoutException(message) raise WebSocketTimeoutException(message)
except SSLError as e: except SSLError as e:
message = getattr(e, 'strerror', getattr(e, 'message', '')) message = _extract_err_message(e)
if message == "The read operation timed out": if message == "The read operation timed out":
raise WebSocketTimeoutException(message) raise WebSocketTimeoutException(message)
else: else: