From 23627467aa47205617d13fac09f76f8c8b96400b Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Tue, 16 Jun 2020 07:57:21 -0700 Subject: [PATCH] Use the proper URL syntax for IPv6 address literals. --- dns/query.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dns/query.py b/dns/query.py index 6d9a10be..17f1bae8 100644 --- a/dns/query.py +++ b/dns/query.py @@ -302,17 +302,17 @@ def https(q, where, timeout=None, port=443, source=None, source_port=0, headers = { "accept": "application/dns-message" } - try: - _ = ipaddress.ip_address(where) + if af == dns.inet.AF_INET: url = 'https://{}:{}{}'.format(where, port, path) - except ValueError: - if bootstrap_address is not None: - split_url = urllib.parse.urlsplit(where) - headers['Host'] = split_url.hostname - url = where.replace(split_url.hostname, bootstrap_address) - transport_adapter = HostHeaderSSLAdapter() - else: - url = where + elif af == dns.inet.AF_INET6: + url = 'https://[{}]:{}{}'.format(where, port, path) + elif bootstrap_address is not None: + split_url = urllib.parse.urlsplit(where) + headers['Host'] = split_url.hostname + url = where.replace(split_url.hostname, bootstrap_address) + transport_adapter = HostHeaderSSLAdapter() + else: + url = where if source is not None: # set source port and source address transport_adapter = SourceAddressAdapter(source) -- 2.47.3