From d68ffbdc4615d1bfead8044b5baaf114516e2268 Mon Sep 17 00:00:00 2001 From: tomaae <23486452+tomaae@users.noreply.github.com> Date: Thu, 12 Mar 2020 13:21:03 +0100 Subject: [PATCH] catch an error on recv in librouteros and raise an error #8 --- .../mikrotik_router/librouteros_custom/connections.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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