Commit 82c1d40175 for bind

commit 82c1d401757b17b04d592b8408ea383d351323cc
Author: Alessio Podda <alessio@isc.org>
Date:   Fri Jul 3 21:29:27 2026 +0200

    Use _Generic db name arguments

    We extend the _Generic mechanism we used for dns_name_t methods to
    dns_db_t methods that take a name as a parameter.

diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c
index 40259f6e88..ac57377983 100644
--- a/bin/dnssec/dnssec-signzone.c
+++ b/bin/dnssec/dnssec-signzone.c
@@ -2036,8 +2036,7 @@ addnsec3(dns_name_t *name, dns_dbnode_t *node, const unsigned char *salt,
 	rdatalist.ttl = ttl;
 	ISC_LIST_APPEND(rdatalist.rdata, &rdata, link);
 	dns_rdatalist_tordataset(&rdatalist, &rdataset);
-	result = dns_db_findnsec3node(gdb, dns_fixedname_name(&hashname), true,
-				      &nsec3node);
+	result = dns_db_findnsec3node(gdb, &hashname, true, &nsec3node);
 	check_result(result, "addnsec3: dns_db_findnode()");
 	result = dns_db_addrdataset(gdb, nsec3node, gversion, 0, &rdataset, 0,
 				    NULL);
diff --git a/lib/dns/include/dns/db.h b/lib/dns/include/dns/db.h
index 8de309926c..ba9a7b2d7b 100644
--- a/lib/dns/include/dns/db.h
+++ b/lib/dns/include/dns/db.h
@@ -767,11 +767,12 @@ dns__db_closeversion(dns_db_t *db, dns_dbversion_t **versionp,
  *** Node Methods
  ***/

-#define dns_db_findnode(db, name, create, nodep) \
-	dns__db_findnode(db, name, create, NULL, NULL, nodep DNS__DB_FILELINE)
-#define dns_db_findnodeext(db, name, create, methods, clientinfo, nodep) \
-	dns__db_findnode(db, name, create, methods, clientinfo,          \
+#define dns_db_findnode(db, name, create, nodep)                         \
+	dns__db_findnode(db, DNS_NAME__RO_ARG(name), create, NULL, NULL, \
 			 nodep DNS__DB_FILELINE)
+#define dns_db_findnodeext(db, name, create, methods, clientinfo, nodep) \
+	dns__db_findnode(db, DNS_NAME__RO_ARG(name), create, methods,    \
+			 clientinfo, nodep DNS__DB_FILELINE)
 isc_result_t
 dns__db_findnode(dns_db_t *db, const dns_name_t *name, bool create,
 		 dns_clientinfomethods_t *methods, dns_clientinfo_t *clientinfo,
@@ -814,14 +815,15 @@ dns__db_findnode(dns_db_t *db, const dns_name_t *name, bool create,
  *	implementation used.
  */

-#define dns_db_find(db, name, version, type, options, now, foundname,        \
-		    rdataset, sigrdataset)                                   \
-	dns__db_find(db, name, version, type, options, now, foundname, NULL, \
-		     NULL, rdataset, sigrdataset DNS__DB_FILELINE)
-#define dns_db_findext(db, name, version, type, options, now, foundname, \
-		       methods, clientinfo, rdataset, sigrdataset)       \
-	dns__db_find(db, name, version, type, options, now, foundname,   \
-		     methods, clientinfo, rdataset,                      \
+#define dns_db_find(db, name, version, type, options, now, foundname,         \
+		    rdataset, sigrdataset)                                    \
+	dns__db_find(db, DNS_NAME__RO_ARG(name), version, type, options, now, \
+		     foundname, NULL, NULL, rdataset,                         \
+		     sigrdataset DNS__DB_FILELINE)
+#define dns_db_findext(db, name, version, type, options, now, foundname,      \
+		       methods, clientinfo, rdataset, sigrdataset)            \
+	dns__db_find(db, DNS_NAME__RO_ARG(name), version, type, options, now, \
+		     foundname, methods, clientinfo, rdataset,                \
 		     sigrdataset DNS__DB_FILELINE)
 isc_result_t
 dns__db_find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
@@ -1545,8 +1547,9 @@ dns_db_getsize(dns_db_t *db, dns_dbversion_t *version, uint64_t *records,
  * \li	#ISC_R_NOTIMPLEMENTED
  */

-#define dns_db_findnsec3node(db, name, create, nodep) \
-	dns__db_findnsec3node(db, name, create, nodep DNS__DB_FILELINE)
+#define dns_db_findnsec3node(db, name, create, nodep)             \
+	dns__db_findnsec3node(db, DNS_NAME__RO_ARG(name), create, \
+			      nodep DNS__DB_FILELINE)
 isc_result_t
 dns__db_findnsec3node(dns_db_t *db, const dns_name_t *name, bool create,
 		      dns_dbnode_t **nodep DNS__DB_FLARG);
diff --git a/lib/dns/notify.c b/lib/dns/notify.c
index 70d12df630..e5d96392f2 100644
--- a/lib/dns/notify.c
+++ b/lib/dns/notify.c
@@ -247,8 +247,7 @@ notify_createmessage(dns_notify_t *notify, dns_message_t **messagep) {
 	dns_name_clone(dns_zone_getorigin(notify->zone),
 		       dns_linkedname_name(tempname));
 	dns_db_currentversion(zonedb, &version);
-	result = dns_db_findnode(zonedb, dns_linkedname_name(tempname), false,
-				 &node);
+	result = dns_db_findnode(zonedb, tempname, false, &node);
 	if (result != ISC_R_SUCCESS) {
 		goto soa_cleanup;
 	}
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index f7bd1d00dd..cbef2ce46f 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -6356,8 +6356,7 @@ rctx_cachename(respctx_t *rctx, dns_message_t *message,
 	/*
 	 * Find or create the cache node.
 	 */
-	RETERR(dns_db_findnode(fctx->cache, dns_linkedname_name(name), true,
-			       &node));
+	RETERR(dns_db_findnode(fctx->cache, name, true, &node));

 	/*
 	 * Cache or validate each cacheable rdataset.
diff --git a/lib/ns/query.c b/lib/ns/query.c
index 51dc034164..644f428d01 100644
--- a/lib/ns/query.c
+++ b/lib/ns/query.c
@@ -2496,11 +2496,11 @@ stale_refresh_aftermath(ns_client_t *client, isc_result_t result) {
 		dboptions |= DNS_DBFIND_STALESTART;

 		dns_db_attach(qctx.client->inner.view->cachedb, &db);
-		(void)dns_db_findext(
-			db, dns_linkedname_name(qctx.client->query.qname), NULL,
-			qctx.client->query.qtype, dboptions,
-			qctx.client->inner.now, dns_linkedname_name(qctx.fname),
-			&cm, &ci, qctx.rdataset, qctx.sigrdataset);
+		(void)dns_db_findext(db, qctx.client->query.qname, NULL,
+				     qctx.client->query.qtype, dboptions,
+				     qctx.client->inner.now,
+				     dns_linkedname_name(qctx.fname), &cm, &ci,
+				     qctx.rdataset, qctx.sigrdataset);
 		dns_db_detach(&db);

 	cleanup:
@@ -4275,10 +4275,9 @@ again:
 	}

 	dboptions = client->query.dboptions | DNS_DBFIND_FORCENSEC3;
-	result = dns_db_findext(db, dns_fixedname_name(&fixed), version,
-				dns_rdatatype_nsec3, dboptions,
-				client->inner.now, fname, &cm, &ci, rdataset,
-				sigrdataset);
+	result = dns_db_findext(db, &fixed, version, dns_rdatatype_nsec3,
+				dboptions, client->inner.now, fname, &cm, &ci,
+				rdataset, sigrdataset);

 	if (result == DNS_R_NXDOMAIN) {
 		if (!dns_rdataset_isassociated(rdataset)) {
@@ -4506,10 +4505,9 @@ redirect(ns_client_t *client, dns_name_t *name, dns_rdataset_t *rdataset,
 	/*
 	 * Lookup the requested data in the redirect zone.
 	 */
-	result = dns_db_findext(db, dns_linkedname_name(client->query.qname),
-				dbversion->version, qtype, DNS_DBFIND_NOZONECUT,
-				client->inner.now, found, &cm, &ci, &trdataset,
-				NULL);
+	result = dns_db_findext(db, client->query.qname, dbversion->version,
+				qtype, DNS_DBFIND_NOZONECUT, client->inner.now,
+				found, &cm, &ci, &trdataset, NULL);
 	if (result == ISC_R_SUCCESS || result == DNS_R_NXRRSET ||
 	    result == DNS_R_NCACHENXRRSET)
 	{
@@ -10241,8 +10239,8 @@ query_addsoa(query_ctx_t *qctx, unsigned int override_ttl,

 		fname = dns_fixedname_initname(&foundname);

-		result = dns_db_findext(qctx->db, dns_linkedname_name(name),
-					qctx->version, dns_rdatatype_soa,
+		result = dns_db_findext(qctx->db, name, qctx->version,
+					dns_rdatatype_soa,
 					client->query.dboptions, 0, fname, &cm,
 					&ci, rdataset, sigrdataset);
 	}
@@ -10293,10 +10291,8 @@ query_addsoa(query_ctx_t *qctx, unsigned int override_ttl,
 		if (section == DNS_SECTION_ADDITIONAL) {
 			rdataset->attributes.required = true;
 		}
-		{
-			query_addrrset(qctx, &name, &rdataset, sigrdatasetp,
-				       NULL, section);
-		}
+		query_addrrset(qctx, &name, &rdataset, sigrdatasetp, NULL,
+			       section);
 	}

 	ns_client_putrdataset(client, &rdataset);
@@ -10361,8 +10357,7 @@ query_addns(query_ctx_t *qctx) {
 			client->inner.now, rdataset, sigrdataset);
 	} else {
 		CTRACE(ISC_LOG_DEBUG(3), "query_addns: calling dns_db_find");
-		result = dns_db_findext(qctx->db, dns_linkedname_name(name),
-					NULL, dns_rdatatype_ns,
+		result = dns_db_findext(qctx->db, name, NULL, dns_rdatatype_ns,
 					client->query.dboptions, 0, fname, &cm,
 					&ci, rdataset, sigrdataset);
 		CTRACE(ISC_LOG_DEBUG(3), "query_addns: dns_db_find complete");
@@ -10483,10 +10478,10 @@ db_find:
 	 */
 	if (is_zone) {
 		result = dns_db_findext(
-			db, dns_linkedname_name(client->query.qname), version,
-			dns_rdatatype_ns, client->query.dboptions,
-			client->inner.now, dns_linkedname_name(fname), &cm, &ci,
-			rdataset, sigrdataset);
+			db, client->query.qname, version, dns_rdatatype_ns,
+			client->query.dboptions, client->inner.now,
+			dns_linkedname_name(fname), &cm, &ci, rdataset,
+			sigrdataset);
 		if (result != DNS_R_DELEGATION) {
 			goto cleanup;
 		}