Exceptions in py3 don't necessarily have a 'message' attribute.

This commit is contained in:
Ralph Bean
2014-04-14 16:34:46 -04:00
parent 073771879a
commit dc84f0b4de

View File

@@ -564,7 +564,7 @@ class WebSocket(object):
while True: while True:
line = self._recv_line() line = self._recv_line()
if line == "\r\n": if line == "\r\n" or line == "\n":
break break
line = line.strip() line = line.strip()
if traceEnabled: if traceEnabled:
@@ -821,10 +821,12 @@ 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:
raise WebSocketTimeoutException(e.message) message = getattr(e, 'strerror', getattr(e, 'message', None))
raise WebSocketTimeoutException(message)
except Exception as e: except Exception as e:
if "timed out" in e.message: message = getattr(e, 'strerror', getattr(e, 'message', None))
raise WebSocketTimeoutException(e.message) if "timed out" in message:
raise WebSocketTimeoutException(message)
else: else:
raise raise
@@ -832,17 +834,18 @@ 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:
raise WebSocketTimeoutException(e.message) message = getattr(e, 'strerror', getattr(e, 'message', None))
raise WebSocketTimeoutException(message)
except SSLError as e: except SSLError as e:
if e.message == "The read operation timed out": message = getattr(e, 'strerror', getattr(e, 'message', None))
raise WebSocketTimeoutException(e.message) if message == "The read operation timed out":
raise WebSocketTimeoutException(message)
else: else:
raise raise
if not bytes: if not bytes:
raise WebSocketConnectionClosedException() raise WebSocketConnectionClosedException()
return bytes return bytes
def _recv_strict(self, bufsize): def _recv_strict(self, bufsize):
shortage = bufsize - sum(len(x) for x in self._recv_buffer) shortage = bufsize - sum(len(x) for x in self._recv_buffer)
while shortage > 0: while shortage > 0: