From: Bob Halley Date: Sat, 25 Feb 2023 20:01:03 +0000 (-0800) Subject: Make a few nameserver changes that missed getting added to the PR. X-Git-Tag: v2.4.0rc1~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e37866650cbba14ffc1947430494660ec3a405fd;p=thirdparty%2Fdnspython.git Make a few nameserver changes that missed getting added to the PR. --- diff --git a/dns/resolver.py b/dns/resolver.py index 4fc5bfd3..63a57eee 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -671,7 +671,9 @@ class _Resolution: request.flags = self.resolver.flags self.nameservers = self.resolver._enrich_nameservers( - self.resolver._nameservers + self.resolver._nameservers, + self.resolver.nameserver_ports, + self.resolver.port, ) if self.resolver.rotate: random.shuffle(self.nameservers) @@ -1117,8 +1119,12 @@ class BaseResolver: self.flags = flags + @classmethod def _enrich_nameservers( - self, nameservers: List[Union[str, dns.nameserver.Nameserver]] + cls, + nameservers: List[Union[str, dns.nameserver.Nameserver]], + nameserver_ports: Dict[str, int], + default_port: int, ) -> List[dns.nameserver.Nameserver]: enriched_nameservers = [] if isinstance(nameservers, list): @@ -1127,7 +1133,7 @@ class BaseResolver: if isinstance(nameserver, dns.nameserver.Nameserver): enriched_nameserver = nameserver elif dns.inet.is_address(nameserver): - port = self.nameserver_ports.get(nameserver, self.port) + port = nameserver_ports.get(nameserver, default_port) enriched_nameserver = dns.nameserver.Do53Nameserver( nameserver, port ) @@ -1169,7 +1175,7 @@ class BaseResolver: Raises ``ValueError`` if *nameservers* is not a list of nameservers. """ # We just call _enrich_nameservers() for checking - self._enrich_nameservers(nameservers) + self._enrich_nameservers(nameservers, self.nameserver_ports, self.port) self._nameservers = nameservers diff --git a/doc/resolver-nameserver.rst b/doc/resolver-nameserver.rst index 06f4a1b6..d5374396 100644 --- a/doc/resolver-nameserver.rst +++ b/doc/resolver-nameserver.rst @@ -12,8 +12,8 @@ and is used by the stub resolver to answer queries. The dns.nameserver.Do53Nameserver Class --------------------------------------- -The ``dns.nameserver.Do53Nameserver`` class is a ``dns.nameserver.Nameserver`` class use -to make regular port 53 (Do53) DNS queries to a recursive server. +The ``dns.nameserver.Do53Nameserver`` class is a ``dns.nameserver.Nameserver`` class used +to make regular UDP/TCP DNS queries, typically over port 53, to a recursive server. .. autoclass:: dns.nameserver.Do53Nameserver :members: @@ -21,7 +21,7 @@ to make regular port 53 (Do53) DNS queries to a recursive server. The dns.nameserver.DoTNameserver Class --------------------------------------- -The ``dns.nameserver.DoTNameserver`` class is a ``dns.nameserver.Nameserver`` class use +The ``dns.nameserver.DoTNameserver`` class is a ``dns.nameserver.Nameserver`` class used to make DNS-over-TLS (DoT) queries to a recursive server. .. autoclass:: dns.nameserver.DoTNameserver @@ -30,7 +30,7 @@ to make DNS-over-TLS (DoT) queries to a recursive server. The dns.nameserver.DoHNameserver Class --------------------------------------- -The ``dns.nameserver.DoHNameserver`` class is a ``dns.nameserver.Nameserver`` class use +The ``dns.nameserver.DoHNameserver`` class is a ``dns.nameserver.Nameserver`` class used to make DNS-over-HTTPS (DoH) queries to a recursive server. .. autoclass:: dns.nameserver.DoHNameserver @@ -39,7 +39,7 @@ to make DNS-over-HTTPS (DoH) queries to a recursive server. The dns.nameserver.DoQNameserver Class --------------------------------------- -The ``dns.nameserver.DoQNameserver`` class is a ``dns.nameserver.Nameserver`` class use +The ``dns.nameserver.DoQNameserver`` class is a ``dns.nameserver.Nameserver`` class used to make DNS-over-QUIC (DoQ) queries to a recursive server. .. autoclass:: dns.nameserver.DoQNameserver diff --git a/doc/whatsnew.rst b/doc/whatsnew.rst index 95fa691e..07b800a8 100644 --- a/doc/whatsnew.rst +++ b/doc/whatsnew.rst @@ -8,7 +8,7 @@ What's New in dnspython * The stub resolver now uses instances of ``dns.nameserver.Nameserver`` to represent remote recursive resolvers, and can communicate using - DNS over port 53, HTTPS, TLS, and QUIC. In additional to being able to specify + DNS over UDP/TCP, HTTPS, TLS, and QUIC. In additional to being able to specify an IPv4, IPv6, or HTTPS URL as a nameserver, instances of ``dns.nameserver.Nameserver`` are now permitted.