fix(connector.py): fix no timeout on connection error

This commit is contained in:
2026-03-01 19:37:24 +01:00
parent a1afd261d5
commit 7099853125

View File

@@ -145,8 +145,24 @@ class Connector:
self.socket.connect((self.host, self.port))
connected = True
except BlockingIOError:
# connection in progress
# connection in progress, wait for socket to become writable
self.logger.debug(
"[.] Connection in progress, waiting for completion..."
)
events = self.selector.select(timeout=1)
for _, mask in events:
if mask & selectors.EVENT_WRITE:
err = self.socket.getsockopt(
socket.SOL_SOCKET, socket.SO_ERROR
)
if err == 0:
connected = True
else:
self.logger.error(
f"[!] Connection failed with error code: {err}"
)
if not connected:
continue
except socket.error as e:
self.logger.error(f"[!] Connection error: {e}")
self.logger.debug(f"[.] Retrying in {delay} seconds...")