From: Štěpán Balážik Date: Thu, 30 Oct 2025 13:08:21 +0000 (+0100) Subject: Allow adding multiple ResponseHandlers at once X-Git-Tag: v9.21.17~25^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d593af3a5f80547af1650223bae2840cdaff631d;p=thirdparty%2Fbind9.git Allow adding multiple ResponseHandlers at once Change this at call sites as well. --- diff --git a/bin/tests/system/chain/ans3/ans.py b/bin/tests/system/chain/ans3/ans.py index 08dab08b310..3309ba286b9 100755 --- a/bin/tests/system/chain/ans3/ans.py +++ b/bin/tests/system/chain/ans3/ans.py @@ -113,8 +113,7 @@ class Cve202125215(DomainHandler): def main() -> None: server = AsyncDnsServer(acknowledge_manual_dname_handling=True, default_aa=True) - server.install_response_handler(CnameThenDnameHandler()) - server.install_response_handler(Cve202125215()) + server.install_response_handlers([CnameThenDnameHandler(), Cve202125215()]) server.run() diff --git a/bin/tests/system/cookie/cookie_ans.py b/bin/tests/system/cookie/cookie_ans.py index bd2782d0d6e..102832dd3fe 100644 --- a/bin/tests/system/cookie/cookie_ans.py +++ b/bin/tests/system/cookie/cookie_ans.py @@ -205,10 +205,14 @@ class FallbackHandler(ResponseHandler): def cookie_server(evil: bool) -> AsyncDnsServer: server = AsyncDnsServer(acknowledge_tsig_dnspython_hacks=True) - server.install_response_handler(NsHandler(evil)) - server.install_response_handler(GlueHandler(evil)) - server.install_response_handler(TcpAHandler()) - server.install_response_handler(WithtsigUdpAHandler()) - server.install_response_handler(UdpAHandler()) - server.install_response_handler(FallbackHandler()) + server.install_response_handlers( + [ + NsHandler(evil), + GlueHandler(evil), + TcpAHandler(), + WithtsigUdpAHandler(), + UdpAHandler(), + FallbackHandler(), + ] + ) return server diff --git a/bin/tests/system/dnssec/ans10/ans.py b/bin/tests/system/dnssec/ans10/ans.py index 7c0798f2f87..24a4a0ea0a9 100644 --- a/bin/tests/system/dnssec/ans10/ans.py +++ b/bin/tests/system/dnssec/ans10/ans.py @@ -56,8 +56,7 @@ class AddNsecToTxtHandler(ResponseHandler): def main() -> None: server = AsyncDnsServer() - server.install_response_handler(AddRrsigToAHandler()) - server.install_response_handler(AddNsecToTxtHandler()) + server.install_response_handlers([AddRrsigToAHandler(), AddNsecToTxtHandler()]) server.run() diff --git a/bin/tests/system/isctest/asyncserver.py b/bin/tests/system/isctest/asyncserver.py index 24481554037..ffe83ba61cb 100644 --- a/bin/tests/system/isctest/asyncserver.py +++ b/bin/tests/system/isctest/asyncserver.py @@ -810,6 +810,10 @@ class AsyncDnsServer(AsyncServer): else: self._response_handlers.append(handler) + def install_response_handlers(self, handlers: List[ResponseHandler]) -> None: + for handler in handlers: + self.install_response_handler(handler) + def uninstall_response_handler(self, handler: ResponseHandler) -> None: """ Remove the specified handler from the list of response handlers. diff --git a/bin/tests/system/qmin/ans2/ans.py b/bin/tests/system/qmin/ans2/ans.py index 18f077781e9..673b8ff37ad 100644 --- a/bin/tests/system/qmin/ans2/ans.py +++ b/bin/tests/system/qmin/ans2/ans.py @@ -103,11 +103,15 @@ class StaleHandler(DomainHandler): def main() -> None: server = AsyncDnsServer() - server.install_response_handler(QueryLogger()) - server.install_response_handler(BadHandler()) - server.install_response_handler(UglyHandler()) - server.install_response_handler(SlowHandler()) - server.install_response_handler(StaleHandler()) + server.install_response_handlers( + [ + QueryLogger(), + BadHandler(), + UglyHandler(), + SlowHandler(), + StaleHandler(), + ] + ) server.run() diff --git a/bin/tests/system/qmin/ans3/ans.py b/bin/tests/system/qmin/ans3/ans.py index 6547dd2f9ba..101ea2a14f6 100644 --- a/bin/tests/system/qmin/ans3/ans.py +++ b/bin/tests/system/qmin/ans3/ans.py @@ -39,10 +39,14 @@ class ZoopBoingSlowHandler(DelayedResponseHandler): def main() -> None: server = AsyncDnsServer() - server.install_response_handler(QueryLogger()) - server.install_response_handler(ZoopBoingBadHandler()) - server.install_response_handler(ZoopBoingUglyHandler()) - server.install_response_handler(ZoopBoingSlowHandler()) + server.install_response_handlers( + [ + QueryLogger(), + ZoopBoingBadHandler(), + ZoopBoingUglyHandler(), + ZoopBoingSlowHandler(), + ] + ) server.run() diff --git a/bin/tests/system/qmin/ans4/ans.py b/bin/tests/system/qmin/ans4/ans.py index ebe500bad69..22334372bef 100644 --- a/bin/tests/system/qmin/ans4/ans.py +++ b/bin/tests/system/qmin/ans4/ans.py @@ -85,11 +85,15 @@ class IckyPtangZoopBoingSlowHandler(DelayedResponseHandler): def main() -> None: server = AsyncDnsServer() - server.install_response_handler(QueryLogger()) - server.install_response_handler(StaleHandler()) - server.install_response_handler(IckyPtangZoopBoingBadHandler()) - server.install_response_handler(IckyPtangZoopBoingUglyHandler()) - server.install_response_handler(IckyPtangZoopBoingSlowHandler()) + server.install_response_handlers( + [ + QueryLogger(), + StaleHandler(), + IckyPtangZoopBoingBadHandler(), + IckyPtangZoopBoingUglyHandler(), + IckyPtangZoopBoingSlowHandler(), + ] + ) server.run() diff --git a/bin/tests/system/rpzrecurse/ans5/ans.py b/bin/tests/system/rpzrecurse/ans5/ans.py index 8c2f7dffc04..85acf15af5d 100644 --- a/bin/tests/system/rpzrecurse/ans5/ans.py +++ b/bin/tests/system/rpzrecurse/ans5/ans.py @@ -50,8 +50,7 @@ class IgnoreNs(ResponseHandler): def main() -> None: server = AsyncDnsServer(default_aa=True, default_rcode=dns.rcode.NOERROR) - server.install_response_handler(ReplyA()) - server.install_response_handler(IgnoreNs()) + server.install_response_handlers([ReplyA(), IgnoreNs()]) server.run() diff --git a/bin/tests/system/statistics/ans4/ans.py b/bin/tests/system/statistics/ans4/ans.py index d3de81bc701..f353fc6e957 100644 --- a/bin/tests/system/statistics/ans4/ans.py +++ b/bin/tests/system/statistics/ans4/ans.py @@ -159,18 +159,19 @@ class FallbackHandler(ResponseHandler): def main() -> None: server = AsyncDnsServer(default_rcode=dns.rcode.NOERROR) - for handler in ( - BadGoodCnameHandler, - Cname1Handler, - Cname2Handler, - ExampleHandler, - FooInfoHandler, - NoDataHandler, - NxdomainHandler, - SubHandler, - FallbackHandler, - ): - server.install_response_handler(handler()) + server.install_response_handlers( + [ + BadGoodCnameHandler(), + Cname1Handler(), + Cname2Handler(), + ExampleHandler(), + FooInfoHandler(), + NoDataHandler(), + NxdomainHandler(), + SubHandler(), + FallbackHandler(), + ] + ) server.run()