Fix bugs in 'resolver/ans2' and 'resolver/ans3'

There were multiple typos and omissions regarding query minimization.

(cherry picked from commit c336c1feab)
This commit is contained in:
Štěpán Balážik 2025-12-25 21:48:33 +01:00
parent a190f65c43
commit 7a70608cfd
3 changed files with 3 additions and 21 deletions

View file

@ -177,16 +177,6 @@ class FallbackHandler(ResponseHandler):
yield DnsResponseSend(qctx.response, authoritative=False)
# XXX: This handler is here to provide bug-for-bug compatibility with the old server.
class XXXBuggyTldNsHandler(QnameQtypeHandler, FallbackHandler):
qnames = [
"tld1.",
"tld2.",
]
qtypes = [dns.rdatatype.NS]
def main() -> None:
server = AsyncDnsServer(default_rcode=dns.rcode.NOERROR)
@ -202,7 +192,6 @@ def main() -> None:
Gl6412Ns3Handler(),
NoResponseExampleUdpHandler(),
RootNsHandler(),
XXXBuggyTldNsHandler(),
)
# Then install DomainHandlers

View file

@ -56,12 +56,7 @@ class BadCnameHandler(QnameHandler, StaticResponseHandler):
class BadGoodDnameNsHandler(QnameQtypeHandler, StaticResponseHandler):
qnames = ["baddname.example.net.", "gooddname.example.net."]
qtypes = [dns.rdatatype.NS]
# XXX: This should really be, for brevity:
# authority = [soa_rrset("example.net.")]
# But we are reproducing the exact behavior of the original server.
authority = [
rrset("example.net.", dns.rdatatype.SOA, "1. 2. 3 4 5 1814400 3600", ttl=0)
]
authority = [soa_rrset("example.net.")]
class CnameSubHandler(QnameHandler, StaticResponseHandler):

View file

@ -107,10 +107,8 @@ class Gl6412Handler(QnameHandler):
if qctx.qtype == dns.rdatatype.SOA:
qctx.response.answer.append(soa_rrset(qctx.qname))
elif qctx.qtype == dns.rdatatype.NS:
# XXX: The delegation is broken here; dot is missing from NS target names.
# I don't know if this is intentional, but for now we are chasing behavior parity.
ns2_rrset = rrset(qctx.qname, dns.rdatatype.NS, f"ns2{qctx.qname}")
ns3_rrset = rrset(qctx.qname, dns.rdatatype.NS, f"ns3{qctx.qname}")
ns2_rrset = rrset(qctx.qname, dns.rdatatype.NS, f"ns2.{qctx.qname}")
ns3_rrset = rrset(qctx.qname, dns.rdatatype.NS, f"ns3.{qctx.qname}")
qctx.response.answer.append(ns2_rrset)
qctx.response.answer.append(ns3_rrset)
else: