From 37f6d797698e4baea96a7b4186201c6f9284fe36 Mon Sep 17 00:00:00 2001 From: Enrico Faulhaber Date: Wed, 18 Jul 2018 12:01:47 +0200 Subject: [PATCH] interface/tcp: handle dead connection correctly Change-Id: Ida4d09dab54ee367508de1e883ecf252369ecc1d Reviewed-on: https://forge.frm2.tum.de/review/18460 Reviewed-by: Enrico Faulhaber Tested-by: Enrico Faulhaber --- secop/protocol/interface/tcp.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/secop/protocol/interface/tcp.py b/secop/protocol/interface/tcp.py index b4e5e36..f44c00b 100644 --- a/secop/protocol/interface/tcp.py +++ b/secop/protocol/interface/tcp.py @@ -128,7 +128,11 @@ class TCPRequestHandler(socketserver.BaseRequestHandler): # XXX: improve: use polling/select here? try: - data = data + mysocket.recv(MAX_MESSAGE_SIZE) + newdata = mysocket.recv(MAX_MESSAGE_SIZE) + if not newdata: + # no timeout error, but no new data -> connection closed + return + data = data + newdata except socket.timeout as e: continue except socket.error as e: