From 6567d208f47812f8ba2e8413bd18fb1c56697f01 Mon Sep 17 00:00:00 2001 From: anecdata <16617689+anecdata@users.noreply.github.com> Date: Sat, 6 Feb 2021 08:40:10 -0600 Subject: [PATCH 1/2] Catch recv-Into exception fix socket leak --- adafruit_requests.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adafruit_requests.py b/adafruit_requests.py index f10a342..3b56ea5 100644 --- a/adafruit_requests.py +++ b/adafruit_requests.py @@ -569,7 +569,10 @@ def request( result = socket.recv(1) else: result = bytearray(1) - socket.recv_into(result) + try: + socket.recv_into(result) + except OSError: + pass if result == b"H": # Things seem to be ok so break with socket set. break From 10eebbd41458cf2c40f351eae4c4d09efc62d9f9 Mon Sep 17 00:00:00 2001 From: anecdata <16617689+anecdata@users.noreply.github.com> Date: Mon, 8 Feb 2021 13:43:44 -0600 Subject: [PATCH 2/2] Add string to OutOfRetries exception --- adafruit_requests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_requests.py b/adafruit_requests.py index 3b56ea5..a94db30 100644 --- a/adafruit_requests.py +++ b/adafruit_requests.py @@ -580,7 +580,7 @@ def request( socket = None if not socket: - raise OutOfRetries() + raise OutOfRetries("Repeated socket failures") resp = Response(socket, self) # our response if "location" in resp.headers and 300 <= resp.status_code <= 399: