From: Mark Andrews Date: Thu, 12 Oct 2023 01:01:46 +0000 (+1100) Subject: Restore dns64 state during serve-stale processing X-Git-Tag: v9.19.21~9^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1fcc483df13e049b96f620e515f0d4d45f3680b7;p=thirdparty%2Fbind9.git Restore dns64 state during serve-stale processing If we are in the process of looking for the A records as part of dns64 processing and the server-stale timeout triggers, redo the dns64 changes that had been made to the orignal qctx. --- diff --git a/lib/ns/query.c b/lib/ns/query.c index 07537a8040b..b819dc4fdf1 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -6251,6 +6251,13 @@ query_lookup_stale(ns_client_t *client) { query_ctx_t qctx; qctx_init(client, NULL, client->query.qtype, &qctx); + if (DNS64(client)) { + qctx.qtype = qctx.type = dns_rdatatype_a; + qctx.dns64 = true; + } + if (DNS64EXCLUDE(client)) { + qctx.dns64_exclude = true; + } dns_db_attach(client->view->cachedb, &qctx.db); client->query.attributes &= ~NS_QUERYATTR_RECURSIONOK; client->query.dboptions |= DNS_DBFIND_STALETIMEOUT;