From f11f9f6d20012282a6554e6386cae3f151da0b53 Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Sat, 5 Jan 2019 10:58:15 -0800 Subject: [PATCH] For _getaddrinfo(), if AI_ADDRCONFIG or AI_V4MAPPED are specified, raise socket.gaierror(socket.EAI_SYSTEM) instead of NotImplementedError, as higher level software will cope better. [Issue #316] --- dns/resolver.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dns/resolver.py b/dns/resolver.py index cdf77574..63326ffe 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -1162,7 +1162,10 @@ _original_gethostbyaddr = socket.gethostbyaddr def _getaddrinfo(host=None, service=None, family=socket.AF_UNSPEC, socktype=0, proto=0, flags=0): if flags & (socket.AI_ADDRCONFIG | socket.AI_V4MAPPED) != 0: - raise NotImplementedError + # Not implemented. We raise a gaierror as opposed to a + # NotImplementedError as it helps callers handle errors more + # appropriately. [Issue #316] + raise socket.gaierror(socket.EAI_SYSTEM) if host is None and service is None: raise socket.gaierror(socket.EAI_NONAME) v6addrs = [] -- 2.47.3