From: Christian Heller Date: Mon, 6 Oct 2025 19:31:05 +0000 (+0200) Subject: Retry connecting on socket.gaierror.errno == socket.EAI_AGAIN. X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/index.html?a=commitdiff_plain;h=c889af35e8cb83c7441fef5377f042ea1b458ddd;p=ircplom Retry connecting on socket.gaierror.errno == socket.EAI_AGAIN. --- diff --git a/src/ircplom/irc_conn.py b/src/ircplom/irc_conn.py index 9e74bd2..fd46c0d 100644 --- a/src/ircplom/irc_conn.py +++ b/src/ircplom/irc_conn.py @@ -1,7 +1,7 @@ 'Low-level IRC protocol / server connection management.' # built-ins from abc import ABC, abstractmethod -from socket import socket, gaierror as socket_gaierror +from socket import EAI_AGAIN, socket, gaierror as socket_gaierror from ssl import create_default_context as create_ssl_context from datetime import datetime from typing import Callable, Iterator, NamedTuple, Optional, Self @@ -164,7 +164,7 @@ class BaseIrcConnection(QueueMixin, ABC): except TimeoutError as e: raise IrcConnException(retry=True) from e except socket_gaierror as e: - raise IrcConnException() from e + raise IrcConnException(retry=e.errno == EAI_AGAIN) from e self._socket.settimeout(_TIMEOUT_RECV_LOOP) def close(self) -> None: