From: Bob Halley Date: Tue, 16 Jun 2020 14:57:21 +0000 (-0700) Subject: Use the proper URL syntax for IPv6 address literals. X-Git-Tag: v2.0.0rc1~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23627467aa47205617d13fac09f76f8c8b96400b;p=thirdparty%2Fdnspython.git Use the proper URL syntax for IPv6 address literals. --- 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)