diff --git a/custom_components/mikrotik_router/librouteros_custom/connections.py b/custom_components/mikrotik_router/librouteros_custom/connections.py index 63cd8db..d7cabba 100644 --- a/custom_components/mikrotik_router/librouteros_custom/connections.py +++ b/custom_components/mikrotik_router/librouteros_custom/connections.py @@ -22,7 +22,13 @@ class SocketTransport: """ data = bytearray() while len(data) != length: - data += self.sock.recv((length - len(data))) + try: + tmp = self.sock.recv((length - len(data))) + except: + raise ConnectionClosed('Socket recv failed.') + finally: + data += tmp + if not data: raise ConnectionClosed('Connection unexpectedly closed.') return data