From d6381175ce65c84aa22e075131d81ac42f5a74b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Pinkava?= Date: Sun, 3 Mar 2024 08:45:01 +0100 Subject: [PATCH] Properly close socked which is already in disconnection state The socker might be already disconnecting due to FIN from the other side, in this case still close the socket to finish the operation but do not reset the ISR, because we will not get another SNIR_DISCON and would end up in inifite loop. --- adafruit_wiznet5k/adafruit_wiznet5k_socket.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_wiznet5k/adafruit_wiznet5k_socket.py b/adafruit_wiznet5k/adafruit_wiznet5k_socket.py index e0687a0..7159cc7 100644 --- a/adafruit_wiznet5k/adafruit_wiznet5k_socket.py +++ b/adafruit_wiznet5k/adafruit_wiznet5k_socket.py @@ -247,7 +247,7 @@ def __exit__(self, exc_type, exc_val, exc_tb) -> None: _the_interface.release_socket(self._socknum) if self._sock_type == SOCK_STREAM: _the_interface.write_snir( - self._socknum, 0xFF + self._socknum, 0xFF & (~wiznet5k.adafruit_wiznet5k.SNIR_DISCON) ) # Reset socket interrupt register. _the_interface.socket_disconnect(self._socknum) mask = (