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))
|
self.socket.connect((self.host, self.port))
|
||||||
connected = True
|
connected = True
|
||||||
except BlockingIOError:
|
except BlockingIOError:
|
||||||
# connection in progress
|
# connection in progress, wait for socket to become writable
|
||||||
connected = True
|
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:
|
except socket.error as e:
|
||||||
self.logger.error(f"[!] Connection error: {e}")
|
self.logger.error(f"[!] Connection error: {e}")
|
||||||
self.logger.debug(f"[.] Retrying in {delay} seconds...")
|
self.logger.debug(f"[.] Retrying in {delay} seconds...")
|
||||||
|
|||||||
Reference in New Issue
Block a user