From 8bfbed48241416b24b4146ebbf8830df30a1ba78 Mon Sep 17 00:00:00 2001 From: Perchun Pak Date: Sun, 21 May 2023 23:18:28 +0200 Subject: [PATCH] Ignore exceptions on socket close --- mcstatus/protocol/connection.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mcstatus/protocol/connection.py b/mcstatus/protocol/connection.py index 4815a4ca..0fe94d2d 100644 --- a/mcstatus/protocol/connection.py +++ b/mcstatus/protocol/connection.py @@ -1,6 +1,7 @@ from __future__ import annotations import asyncio +import errno import socket import struct from abc import ABC, abstractmethod @@ -498,7 +499,12 @@ def __init__(self) -> None: def close(self) -> None: """Close :attr:`.socket`.""" if self.socket is not None: # If initialized - self.socket.shutdown(socket.SHUT_RDWR) + try: + self.socket.shutdown(socket.SHUT_RDWR) + except OSError as exception: # Socket wasn't connected (nothing to shut down) + if exception.errno != errno.ENOTCONN: + raise + self.socket.close() def __enter__(self) -> Self: