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