diff --git a/sjrpc/core/rpcconnection.py b/sjrpc/core/rpcconnection.py index 21e06bb0d2b7b79099d3c49a5816dad71f8cccfd..9c1c4b51dba1e84c5066e5af849a143e58751c0b 100644 --- a/sjrpc/core/rpcconnection.py +++ b/sjrpc/core/rpcconnection.py @@ -193,7 +193,6 @@ class RpcConnection(object): handler. ''' # Try to received remaining data from the socket: - if buf == '': try: buf = self._sock.recv(self._remains) except socket.error as err: @@ -205,9 +204,12 @@ class RpcConnection(object): return else: raise + if not buf: + # Empty data on non-blocking socket means that the connection + # has been closed: self.shutdown() - self._remains -= len(buf) + self._remains -= len(buf) if self._proto_receiving is None: self._inbound_buffer += buf if self._remains == 0: