Skip to content

Commit 5a274de

Browse files
committed
fixup! Fix DNS error re-write on Windows
1 parent 6fe9de0 commit 5a274de

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/neo4j/_async_compat/network/_util.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -184,14 +184,17 @@ def _dns_resolver(address, family=0):
184184
type=socket.SOCK_STREAM,
185185
)
186186
except OSError as e:
187-
if e.errno in _RETRYABLE_DNS_ERRNOS or (
188-
e.errno in _EAI_NONAME
189-
and (address.host is not None or address.port is not None)
187+
# note: on some systems like Windows, EAI_NONAME and EAI_NODATA
188+
# have the same error-code.
189+
if e.errno in _EAI_NONAME and (
190+
address.host is None and address.port is None
190191
):
191-
raise ServiceUnavailable(
192-
f"Failed to DNS resolve address {address}: {e}"
193-
) from e
194-
raise ValueError(
192+
err_cls = ValueError
193+
elif e.errno in _RETRYABLE_DNS_ERRNOS or e.errno in _EAI_NONAME:
194+
err_cls = ServiceUnavailable
195+
else:
196+
err_cls = ValueError
197+
raise err_cls(
195198
f"Failed to DNS resolve address {address}: {e}"
196199
) from e
197200
return _resolved_addresses_from_info(info, address._host_name)

0 commit comments

Comments
 (0)