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;
}