fix(connector.py): fix no timeout on connection error
This commit is contained in:
@@ -145,8 +145,24 @@ class Connector:
|
||||
self.socket.connect((self.host, self.port))
|
||||
connected = True
|
||||
except BlockingIOError:
|
||||
# connection in progress
|
||||
connected = True
|
||||
# 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...")
|
||||
|
||||
Reference in New Issue
Block a user