summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliris <liris.pp@gmail.com>2019-03-21 10:20:13 +0900
committerGitHub <noreply@github.com>2019-03-21 10:20:13 +0900
commit8e7140219de90d2353a2eed11968c3aaf03793f3 (patch)
tree5978d19cc85063a172548b19d2916e7211241feb
parent66081be8e0523c9dfaffcb18ba1c8e4765e2288e (diff)
parenta13b6542a832e71c8635adf3cb8b0e236e8ca83c (diff)
downloadwebsocket-client-8e7140219de90d2353a2eed11968c3aaf03793f3.tar.gz
Merge pull request #536 from trygveaa:dont-retry-sockets-with-timeout-0
Don't retry sockets with timeout set to 0
-rw-r--r--websocket/_socket.py10
-rw-r--r--websocket/tests/test_websocket.py3
2 files changed, 11 insertions, 2 deletions
diff --git a/websocket/_socket.py b/websocket/_socket.py
index d811c21..7be3913 100644
--- a/websocket/_socket.py
+++ b/websocket/_socket.py
@@ -96,7 +96,10 @@ def recv(sock, bufsize):
return sock.recv(bufsize)
try:
- bytes_ = _recv()
+ if sock.gettimeout() == 0:
+ bytes_ = sock.recv(bufsize)
+ else:
+ bytes_ = _recv()
except socket.timeout as e:
message = extract_err_message(e)
raise WebSocketTimeoutException(message)
@@ -148,7 +151,10 @@ def send(sock, data):
return sock.send(data)
try:
- return _send()
+ if sock.gettimeout() == 0:
+ return sock.send(data)
+ else:
+ return _send()
except socket.timeout as e:
message = extract_err_message(e)
raise WebSocketTimeoutException(message)
diff --git a/websocket/tests/test_websocket.py b/websocket/tests/test_websocket.py
index f49a893..8b131bb 100644
--- a/websocket/tests/test_websocket.py
+++ b/websocket/tests/test_websocket.py
@@ -55,6 +55,9 @@ class SockMock(object):
def add_packet(self, data):
self.data.append(data)
+ def gettimeout(self):
+ return None
+
def recv(self, bufsize):
if self.data:
e = self.data.pop(0)