From: Štěpán Balážik Date: Wed, 29 Oct 2025 17:59:31 +0000 (+0100) Subject: Allow users of AsyncDnsServer to set AA bit for all responses X-Git-Tag: v9.21.17~25^2~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6e684d44;p=thirdparty%2Fbind9.git Allow users of AsyncDnsServer to set AA bit for all responses Previously, all responses had to be set as authoritative explicitly using DnsResponseSend(..., authoritative=True). After using this, it became obvious that this is obnoxious. Add an optional keyword-only parameter to AsyncDnsServer that sets the default value of the AA bit on outgoing responses. Make all the other parameters keyword-only as well. --- diff --git a/bin/tests/system/isctest/asyncserver.py b/bin/tests/system/isctest/asyncserver.py index 27a981446b9..24481554037 100644 --- a/bin/tests/system/isctest/asyncserver.py +++ b/bin/tests/system/isctest/asyncserver.py @@ -773,7 +773,9 @@ class AsyncDnsServer(AsyncServer): def __init__( self, + /, default_rcode: dns.rcode.Rcode = dns.rcode.REFUSED, + default_aa: bool = True, acknowledge_manual_dname_handling: bool = False, acknowledge_tsig_dnspython_hacks: bool = False, ) -> None: @@ -783,6 +785,7 @@ class AsyncDnsServer(AsyncServer): self._connection_handler: Optional[ConnectionHandler] = None self._response_handlers: List[ResponseHandler] = [] self._default_rcode = default_rcode + self._default_aa = default_aa self._acknowledge_manual_dname_handling = acknowledge_manual_dname_handling self._acknowledge_tsig_dnspython_hacks = acknowledge_tsig_dnspython_hacks @@ -1101,6 +1104,8 @@ class AsyncDnsServer(AsyncServer): Yield response(s) either from response handlers or zone data. """ qctx.response.set_rcode(self._default_rcode) + if self._default_aa: + qctx.response.flags |= dns.flags.AA self._prepare_response_from_zone_data(qctx)