home · contact · privacy
Retry connecting on socket.gaierror.errno == socket.EAI_AGAIN.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 6 Oct 2025 19:31:05 +0000 (21:31 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 6 Oct 2025 19:31:05 +0000 (21:31 +0200)
src/ircplom/irc_conn.py

index 9e74bd29311ecf2aed04891ae85e689f084d1e7c..fd46c0d311f596f311dcfa21f4ae638e365bce5d 100644 (file)
@@ -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: