From c889af35e8cb83c7441fef5377f042ea1b458ddd Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Mon, 6 Oct 2025 21:31:05 +0200 Subject: [PATCH] Retry connecting on socket.gaierror.errno == socket.EAI_AGAIN. --- src/ircplom/irc_conn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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: -- 2.30.2