From 5d5dbd371f60f6049a3abb397a8254a9e72305bc Mon Sep 17 00:00:00 2001 From: Artur Borecki Date: Sat, 30 Aug 2025 18:33:21 +0200 Subject: [PATCH] feat(connector.py): ensure sent data is ACK'd in `send()` --- src/judas_client/connector.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/judas_client/connector.py b/src/judas_client/connector.py index 2f9c21a..40a0c05 100644 --- a/src/judas_client/connector.py +++ b/src/judas_client/connector.py @@ -104,14 +104,21 @@ class Connector: try: self.socket.sendall(data) self.logger.info("[>] Data sent") - self._send_ack() - break + acknowledged: bool = self._check_ack() + if acknowledged: + self.logger.debug("[.] Data acknowledged") + break + else: + self.logger.warning( + "[!] Data not acknowledged, retrying..." + ) except BrokenPipeError as e: self.logger.error(f"[!] Broken pipe: {e}") self.logger.info("[.] Reconnecting...") self.connect() except (socket.error, ValueError) as e: self.logger.error(f"[!] Failed to send data: {e}") + time.sleep(1) def receive(self) -> bytes: self.logger.debug("[.] Waiting to receive data...")