From 92b5b2d4a660a509aba0b818cf1889eb6d76c09e Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Sat, 13 Jun 2020 11:40:54 -0700 Subject: Change parameter order of low_level_address_tuple; add test coverage. --- dns/inet.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'dns/inet.py') diff --git a/dns/inet.py b/dns/inet.py index 7960e9f..71782ac 100644 --- a/dns/inet.py +++ b/dns/inet.py @@ -141,15 +141,22 @@ def is_address(text): return False -def low_level_address_tuple(af, high_tuple): - """Given an address family and a "high-level" address tuple, i.e. +def low_level_address_tuple(high_tuple, af=None): + """Given a "high-level" address tuple, i.e. an (address, port) return the appropriate "low-level" address tuple suitable for use in socket calls. + + If an *af* other than ``None`` is provided, it is assumed the + address in the high-level tuple is valid and has that af. If af + is ``None``, then af_for_address will be called. + """ address, port = high_tuple - if af == dns.inet.AF_INET: + if af is None: + af = af_for_address(address) + if af == AF_INET: return (address, port) - elif af == dns.inet.AF_INET6: + elif af == AF_INET6: ai_flags = socket.AI_NUMERICHOST ((*_, tup), *_) = socket.getaddrinfo(address, port, flags=ai_flags) return tup -- cgit v1.2.1