From: Christian Heller Date: Mon, 3 Nov 2025 19:06:05 +0000 (+0100) Subject: Handle socket_gaierror also during connection, avoid hard-coded errno ints. X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/static/%7B%7Bdb.prefix%7D%7D/%7B%7Bprefix%7D%7D/processes?a=commitdiff_plain;h=HEAD;p=ircplom Handle socket_gaierror also during connection, avoid hard-coded errno ints. --- diff --git a/src/ircplom/irc_conn.py b/src/ircplom/irc_conn.py index fd46c0d..3e15e04 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 EAI_AGAIN, socket, gaierror as socket_gaierror +from socket import EAI_AGAIN, EBADF, 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 @@ -204,8 +204,10 @@ class BaseIrcConnection(QueueMixin, ABC): continue except ConnectionResetError as e: raise IrcConnException(retry=True) from e + except socket_gaierror as e: + raise IrcConnException(retry=e.errno == EAI_AGAIN) from e except OSError as e: - if e.errno == 9: + if e.errno == EBADF: raise IrcConnException(retry=True) from e raise e if not bytes_new: