diff --git a/ia-cdx-search b/ia-cdx-search index 27f2543..7cea1c1 100755 --- a/ia-cdx-search +++ b/ia-cdx-search @@ -5,6 +5,7 @@ import http.client import json import re import shlex +import socket import sys import time @@ -35,7 +36,8 @@ def fetch(url, tries, connection): print(f'Read {len(data)} bytes from {url}', file = sys.stderr) o = json.loads(data) break - except (RuntimeError, TimeoutError, http.client.HTTPException, json.JSONDecodeError) as e: + except (RuntimeError, TimeoutError, socket.timeout, http.client.HTTPException, json.JSONDecodeError) as e: + # socket.timeout is an alias of TimeoutError from Python 3.10 but still needs to be caught explicitly for older versions print(f'Error retrieving {url}: {type(e).__module__}.{type(e).__name__} {e!s}', file = sys.stderr) connection.close() connection = make_connection()