]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add debug logs for response handler matching
authorMichał Kępień <michal@isc.org>
Fri, 11 Apr 2025 14:14:57 +0000 (09:14 -0500)
committerMichał Kępień <michal@isc.org>
Fri, 11 Apr 2025 14:14:57 +0000 (09:14 -0500)
With multiple and/or dynamically managed response handlers at play, it
becomes useful for debugging purposes to know which handler (if any) was
used for preparing each response sent by the server.  Add debug logs
providing that information.  Make class name the default string
representation of each response handler to prettify logs.

bin/tests/system/isctest/asyncserver.py

index 0ace0f277fed005abecc56760c1ad88b63e54c74..20d8ee24d78b886b126c0f3a1587cb734d3df79b 100644 (file)
@@ -394,6 +394,9 @@ class ResponseHandler(abc.ABC):
         """
         yield DnsResponseSend(qctx.response)
 
+    def __str__(self) -> str:
+        return self.__class__.__name__
+
 
 class IgnoreAllQueries(ResponseHandler):
     """
@@ -778,6 +781,7 @@ class AsyncDnsServer(AsyncServer):
             response_handled = True
 
         if not response_handled:
+            logging.debug("Responding based on zone data")
             yield qctx.response
 
     def _prepare_response_from_zone_data(self, qctx: QueryContext) -> None:
@@ -911,6 +915,7 @@ class AsyncDnsServer(AsyncServer):
         """
         for handler in self._response_handlers:
             if handler.match(qctx):
+                logging.debug("Matched response handler: %s", handler)
                 async for response in handler.get_responses(qctx):
                     yield response
                 return