diff --git a/src/judas_client/connector.py b/src/judas_client/connector.py index bfa71d0..2f9c21a 100644 --- a/src/judas_client/connector.py +++ b/src/judas_client/connector.py @@ -100,17 +100,18 @@ class Connector: def send(self, data: bytes) -> None: self.logger.debug(f"[>] Sending data: {data}") - try: - self.socket.sendall(data) - self.logger.info("[>] Data sent") - self._send_ack() - except BrokenPipeError as e: - self.logger.error(f"[!] Broken pipe: {e}") - self.logger.info("[.] Reconnecting...") - self.connect() - self.send(data) - except (socket.error, ValueError) as e: - self.logger.error(f"[!] Failed to send data: {e}") + while True: + try: + self.socket.sendall(data) + self.logger.info("[>] Data sent") + self._send_ack() + break + 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}") def receive(self) -> bytes: self.logger.debug("[.] Waiting to receive data...")