'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
         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: