From: Štěpán Balážik Date: Thu, 30 Oct 2025 13:07:12 +0000 (+0100) Subject: Use default_rcode for AsyncDnsServer where applicable X-Git-Tag: v9.21.17~25^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4de7eb4f9c2ed5d4b1b0402d019417455a413ed;p=thirdparty%2Fbind9.git Use default_rcode for AsyncDnsServer where applicable Rule of thumb: If a RCode is set unconditionally in all ResponseHandlers, set it in the server constructor. --- diff --git a/bin/tests/system/chain/ans4/ans.py b/bin/tests/system/chain/ans4/ans.py index bec20985f4b..618b36bdf53 100755 --- a/bin/tests/system/chain/ans4/ans.py +++ b/bin/tests/system/chain/ans4/ans.py @@ -443,7 +443,6 @@ class ChainResponseHandler(DomainHandler): for rrset in self._additional_rrsets: qctx.response.additional.append(rrset) - qctx.response.set_rcode(dns.rcode.NOERROR) qctx.response.use_edns() yield DnsResponseSend(qctx.response) @@ -473,7 +472,9 @@ class ChainResponseHandler(DomainHandler): def main() -> None: - server = ControllableAsyncDnsServer(default_aa=True) + server = ControllableAsyncDnsServer( + default_aa=True, default_rcode=dns.rcode.NOERROR + ) server.install_control_command(ChainSetupCommand()) server.run() diff --git a/bin/tests/system/dispatch/ans3/ans.py b/bin/tests/system/dispatch/ans3/ans.py index 653232f9915..774f9a5414d 100644 --- a/bin/tests/system/dispatch/ans3/ans.py +++ b/bin/tests/system/dispatch/ans3/ans.py @@ -29,13 +29,12 @@ class TruncateOnUdpHandler(ResponseHandler): self, qctx: QueryContext ) -> AsyncGenerator[ResponseAction, None]: assert qctx.protocol == DnsProtocol.UDP, "This server only supports UDP" - qctx.response.set_rcode(dns.rcode.NOERROR) qctx.response.flags |= dns.flags.TC yield DnsResponseSend(qctx.response) def main() -> None: - server = AsyncDnsServer() + server = AsyncDnsServer(default_rcode=dns.rcode.NOERROR) server.install_connection_handler(ConnectionReset(delay=1.0)) server.install_response_handler(TruncateOnUdpHandler()) server.run() diff --git a/bin/tests/system/fetchlimit/ans4/ans.py b/bin/tests/system/fetchlimit/ans4/ans.py index a7f82cb5b23..9797735a82c 100644 --- a/bin/tests/system/fetchlimit/ans4/ans.py +++ b/bin/tests/system/fetchlimit/ans4/ans.py @@ -33,13 +33,14 @@ class MaybeDelayedAddressAnswerHandler(ResponseHandler): rrset = dns.rrset.from_text(qctx.qname, 300, qctx.qclass, qctx.qtype, addr) qctx.response.answer.append(rrset) - qctx.response.set_rcode(dns.rcode.NOERROR) delay = 0.05 if qctx.qname.labels[0].startswith(b"latency") else 0.00 yield DnsResponseSend(qctx.response, delay=delay) def main() -> None: - server = ControllableAsyncDnsServer(default_aa=True) + server = ControllableAsyncDnsServer( + default_aa=True, default_rcode=dns.rcode.NOERROR + ) server.install_control_command(ToggleResponsesCommand()) server.install_response_handler(MaybeDelayedAddressAnswerHandler()) server.run() diff --git a/bin/tests/system/forward/ans6/ans.py b/bin/tests/system/forward/ans6/ans.py index 6eaa5a322da..ac1db7ed1e5 100644 --- a/bin/tests/system/forward/ans6/ans.py +++ b/bin/tests/system/forward/ans6/ans.py @@ -60,7 +60,6 @@ class ChaseDsHandler(ResponseHandler): response_rdata = ". . 0 0 0 0 0" response_section = qctx.response.authority - qctx.response.set_rcode(dns.rcode.NOERROR) qctx.response.use_edns(None) response_rrset = dns.rrset.from_text( @@ -72,7 +71,9 @@ class ChaseDsHandler(ResponseHandler): def main() -> None: - server = ControllableAsyncDnsServer(default_aa=True) + server = ControllableAsyncDnsServer( + default_rcode=dns.rcode.NOERROR, default_aa=True + ) server.install_control_command(ToggleResponsesCommand()) server.install_response_handler(ChaseDsHandler()) server.run() diff --git a/bin/tests/system/rpzrecurse/ans5/ans.py b/bin/tests/system/rpzrecurse/ans5/ans.py index 5902cf285dc..8c2f7dffc04 100644 --- a/bin/tests/system/rpzrecurse/ans5/ans.py +++ b/bin/tests/system/rpzrecurse/ans5/ans.py @@ -35,7 +35,6 @@ class ReplyA(ResponseHandler): qctx.qname, 300, dns.rdataclass.IN, dns.rdatatype.A, "10.53.0.5" ) qctx.response.answer.append(a_rrset) - qctx.response.set_rcode(dns.rcode.NOERROR) yield DnsResponseSend(qctx.response) @@ -49,19 +48,10 @@ class IgnoreNs(ResponseHandler): yield ResponseDrop() -class FallbackHandler(ResponseHandler): - async def get_responses( - self, qctx: QueryContext - ) -> AsyncGenerator[DnsResponseSend, None]: - qctx.response.set_rcode(dns.rcode.NOERROR) - yield DnsResponseSend(qctx.response) - - def main() -> None: - server = AsyncDnsServer(default_aa=True) + server = AsyncDnsServer(default_aa=True, default_rcode=dns.rcode.NOERROR) server.install_response_handler(ReplyA()) server.install_response_handler(IgnoreNs()) - server.install_response_handler(FallbackHandler()) server.run() diff --git a/bin/tests/system/zero/ans5/ans.py b/bin/tests/system/zero/ans5/ans.py index 970c175556b..e3438bfd73f 100644 --- a/bin/tests/system/zero/ans5/ans.py +++ b/bin/tests/system/zero/ans5/ans.py @@ -48,12 +48,11 @@ class IncrementARecordHandler(ResponseHandler): qctx.response.answer.append(rrset) self._ip_address += 1 - qctx.response.set_rcode(dns.rcode.NOERROR) yield DnsResponseSend(qctx.response) def main() -> None: - server = AsyncDnsServer(default_aa=True) + server = AsyncDnsServer(default_aa=True, default_rcode=dns.rcode.NOERROR) server.install_response_handler(IncrementARecordHandler()) server.run()