]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Allow adding multiple ResponseHandlers at once
authorŠtěpán Balážik <stepan@isc.org>
Thu, 30 Oct 2025 13:08:21 +0000 (14:08 +0100)
committerŠtěpán Balážik <stepan@isc.org>
Thu, 18 Dec 2025 12:03:14 +0000 (13:03 +0100)
Change this at call sites as well.

bin/tests/system/chain/ans3/ans.py
bin/tests/system/cookie/cookie_ans.py
bin/tests/system/dnssec/ans10/ans.py
bin/tests/system/isctest/asyncserver.py
bin/tests/system/qmin/ans2/ans.py
bin/tests/system/qmin/ans3/ans.py
bin/tests/system/qmin/ans4/ans.py
bin/tests/system/rpzrecurse/ans5/ans.py
bin/tests/system/statistics/ans4/ans.py

index 08dab08b3100abe370944c025513fc244bb1510c..3309ba286b98fe8216fb1b26dd0eaeaac969e247 100755 (executable)
@@ -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()
 
 
index bd2782d0d6e728288df115b6eefec63f8d90a564..102832dd3fedd2b5ee11db1f0af7288a170bfdb6 100644 (file)
@@ -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
index 7c0798f2f876146d185446f9b50498ad3411afa4..24a4a0ea0a91bc09bff5a2d977e15477739745b5 100644 (file)
@@ -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()
 
 
index 244815540370f3daeceacc8a86bfadbf60ad4d5b..ffe83ba61cb050d16772130c49f2b12214e4e86a 100644 (file)
@@ -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.
index 18f077781e90c7250f4e9b2bac4490277f037e07..673b8ff37ad6f61d7c5f090110d4b19c01fd1328 100644 (file)
@@ -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()
 
 
index 6547dd2f9ba47697361ea7be97a36bc35a56208f..101ea2a14f687da6f8f510dc6d578cd9229233ad 100644 (file)
@@ -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()
 
 
index ebe500bad69b4922c8557d9cc5d626a5b58c6d9a..22334372beff346c846ecb26c2e603bbb654cfa0 100644 (file)
@@ -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()
 
 
index 8c2f7dffc04208ff5cadef65dfc6e70a756a5f8a..85acf15af5de8372e6adf646cfe29c6807a97830 100644 (file)
@@ -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()
 
 
index d3de81bc70143d41a7ed95eb15c9dd4f4d0dc9fd..f353fc6e957966ff245c71ba0ab1ed0450620e27 100644 (file)
@@ -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()