summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMANU <M.Mispelaere@televic.com>2018-01-16 08:58:02 +0100
committerMANU <M.Mispelaere@televic.com>2018-01-16 08:58:02 +0100
commitee70f44465967c8f88742db88567820f98fa9d6e (patch)
tree48875f2ecb9b8843bc4fd9458984f11aaaf69149
parent92d101613be41ecb2f2054c3f43a006fbe6f9966 (diff)
downloadpyserial-git-ee70f44465967c8f88742db88567820f98fa9d6e.tar.gz
return b'' when connection closes on rfc2217 connection
-rw-r--r--serial/rfc2217.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/serial/rfc2217.py b/serial/rfc2217.py
index e8ddb7f..c7e58f1 100644
--- a/serial/rfc2217.py
+++ b/serial/rfc2217.py
@@ -613,7 +613,10 @@ class Serial(SerialBase):
while len(data) < size:
if self._thread is None:
raise SerialException('connection failed (reader thread died)')
- data += self._read_buffer.get(True, timeout.time_left())
+ buf = self._read_buffer.get(True, timeout.time_left())
+ if buf is None:
+ return bytes(data)
+ data += buf
if timeout.expired():
break
except Queue.Empty: # -> timeout
@@ -738,8 +741,10 @@ class Serial(SerialBase):
# connection fails -> terminate loop
if self.logger:
self.logger.debug("socket error in reader thread: {}".format(e))
+ self._read_buffer.put(None)
break
if not data:
+ self._read_buffer.put(None)
break # lost connection
for byte in iterbytes(data):
if mode == M_NORMAL: