MCPcopy Create free account
hub / github.com/rthalley/dnspython / next_nameserver

Method next_nameserver

dns/resolver.py:760–779  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

758 raise NXDOMAIN(qnames=self.qnames_to_try, responses=self.nxdomain_responses)
759
760 def next_nameserver(self) -> Tuple[dns.nameserver.Nameserver, bool, float]:
761 if self.retry_with_tcp:
762 assert self.nameserver is not None
763 assert not self.nameserver.is_always_max_size()
764 self.tcp_attempt = True
765 self.retry_with_tcp = False
766 return (self.nameserver, True, 0)
767
768 backoff = 0.0
769 if not self.current_nameservers:
770 if len(self.nameservers) == 0:
771 # Out of things to try!
772 raise NoNameservers(request=self.request, errors=self.errors)
773 self.current_nameservers = self.nameservers[:]
774 backoff = self.backoff
775 self.backoff = min(self.backoff * 2, 2)
776
777 self.nameserver = self.current_nameservers.pop(0)
778 self.tcp_attempt = self.tcp or self.nameserver.is_always_max_size()
779 return (self.nameserver, self.tcp_attempt, backoff)
780
781 def query_result(
782 self, response: dns.message.Message | None, ex: Exception | None

Calls 3

NoNameserversClass · 0.85
popMethod · 0.80
is_always_max_sizeMethod · 0.45