Compare commits

...

2 Commits

2 changed files with 30 additions and 24 deletions

View File

@@ -68,29 +68,35 @@ class Connector:
return False return False
def connect(self, retry_interval: int = 1) -> None: def connect(self) -> None:
self.logger.debug( retry_interval: int = 1
f"Connecting to {self.host}:{self.port} with timeout {self.connect_timeout}s..." connected: bool = False
) while not connected:
try: self.logger.debug(
self.socket.settimeout(self.connect_timeout) f"[.] Connecting to {self.host}:{self.port} with timeout {self.connect_timeout}s..."
self.socket.connect((self.host, self.port))
self.socket.settimeout(self.socket_timeout)
self.logger.info(f"[+] Connected to {self.host}:{self.port}")
self.send_hello()
except (
socket.timeout,
ConnectionRefusedError,
ConnectionAbortedError,
) as e:
self.logger.error(
f"[!] Connection to {self.host}:{self.port} failed: {e}"
) )
self.logger.info( try:
f"[.] Retrying connection in {retry_interval} s..." self.socket.settimeout(self.connect_timeout)
) self.socket.connect((self.host, self.port))
time.sleep(retry_interval) self.socket.settimeout(self.socket_timeout)
self.connect(retry_interval=min(30, retry_interval * 2)) self.logger.info(f"[+] Connected to {self.host}:{self.port}")
self.send_hello()
connected = True
except (
socket.timeout,
ConnectionRefusedError,
ConnectionAbortedError,
) as e:
self.logger.error(
f"[!] Connection to {self.host}:{self.port} failed: {e}"
)
self.logger.info(
f"[.] Retrying connection in {retry_interval} s..."
)
time.sleep(retry_interval)
retry_interval = min(
retry_interval * 2, 30
) # exponential backoff
def send(self, data: bytes, no_check_ack: bool = False) -> None: def send(self, data: bytes, no_check_ack: bool = False) -> None:
self.logger.debug(f"[>] Sending data: {data}") self.logger.debug(f"[>] Sending data: {data}")

4
uv.lock generated
View File

@@ -292,8 +292,8 @@ test = [
[[package]] [[package]]
name = "judas-protocol" name = "judas-protocol"
version = "0.2.0" version = "0.3.0"
source = { git = "https://gitea.pufereq.pl/judas/judas_protocol.git#bc1bf46388eb904738893a2f86b5050b4ce2489e" } source = { git = "https://gitea.pufereq.pl/judas/judas_protocol.git#c25ee1ebdfff8ff51bf00131732720091562e101" }
[[package]] [[package]]
name = "markdown-it-py" name = "markdown-it-py"