From 9e2d5d94bd983bffb3c5042087509a16f6174e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Mon, 15 Sep 2025 18:07:07 +0200 Subject: [PATCH] Remove dns_dbtree_t and its usage As we removed the ability to count nodes in the auxiliary trees (because there are no auxiliary trees), we can also cleanup the API and associated enum type (dns_dbtree_t). --- bin/dnssec/dnssec-signzone.c | 3 +-- bin/named/server.c | 2 +- bin/tests/system/dyndb/driver/db.c | 4 ++-- lib/dns/cache.c | 10 +++------- lib/dns/db.c | 4 ++-- lib/dns/include/dns/db.h | 6 +++--- lib/dns/include/dns/types.h | 6 ------ lib/dns/qpcache.c | 2 +- lib/dns/qpzone.c | 6 ++---- lib/dns/zone.c | 3 +-- 10 files changed, 16 insertions(+), 30 deletions(-) diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index 025f5703ff..496cfbfeee 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -3826,8 +3826,7 @@ main(int argc, char *argv[]) { bool answer; hash_length = dns_nsec3_hashlength(dns_hash_sha1); - hashlist_init(&hashlist, - dns_db_nodecount(gdb, dns_dbtree_main) * 2, + hashlist_init(&hashlist, dns_db_nodecount(gdb) * 2, hash_length); result = dns_nsec_nseconly(gdb, gversion, NULL, &answer); if (result == ISC_R_NOTFOUND) { diff --git a/bin/named/server.c b/bin/named/server.c index 8448b3d715..3ae0d826ed 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -14824,7 +14824,7 @@ named_server_zonestatus(named_server_t *server, isc_lex_t *lex, } /* Database node count */ - nodes = dns_db_nodecount(hasraw ? rawdb : db, dns_dbtree_main); + nodes = dns_db_nodecount(hasraw ? rawdb : db); snprintf(nodebuf, sizeof(nodebuf), "%u", nodes); /* Security */ diff --git a/bin/tests/system/dyndb/driver/db.c b/bin/tests/system/dyndb/driver/db.c index f23e0793c8..c108bc3183 100644 --- a/bin/tests/system/dyndb/driver/db.c +++ b/bin/tests/system/dyndb/driver/db.c @@ -249,12 +249,12 @@ issecure(dns_db_t *db) { } static unsigned int -nodecount(dns_db_t *db, dns_dbtree_t tree) { +nodecount(dns_db_t *db) { sampledb_t *sampledb = (sampledb_t *)db; REQUIRE(VALID_SAMPLEDB(sampledb)); - return dns_db_nodecount(sampledb->db, tree); + return dns_db_nodecount(sampledb->db); } static isc_result_t diff --git a/lib/dns/cache.c b/lib/dns/cache.c index 777de10438..0fbce6c372 100644 --- a/lib/dns/cache.c +++ b/lib/dns/cache.c @@ -618,10 +618,8 @@ dns_cache_dumpstats(dns_cache_t *cache, FILE *fp) { fprintf(fp, "%20" PRIu64 " %s\n", values[dns_cachestatscounter_coveringnsec], "covering nsec returned"); - fprintf(fp, "%20u %s\n", dns_db_nodecount(cache->db, dns_dbtree_main), + fprintf(fp, "%20u %s\n", dns_db_nodecount(cache->db), "cache database nodes"); - fprintf(fp, "%20u %s\n", dns_db_nodecount(cache->db, dns_dbtree_nsec), - "cache NSEC auxiliary database nodes"); fprintf(fp, "%20" PRIu64 " %s\n", (uint64_t)isc_mem_inuse(cache->tmctx), "cache tree memory in use"); @@ -677,8 +675,7 @@ dns_cache_renderxml(dns_cache_t *cache, void *writer0) { TRY0(renderstat("CoveringNSEC", values[dns_cachestatscounter_coveringnsec], writer)); - TRY0(renderstat("CacheNodes", - dns_db_nodecount(cache->db, dns_dbtree_main), writer)); + TRY0(renderstat("CacheNodes", dns_db_nodecount(cache->db), writer)); TRY0(renderstat("TreeMemInUse", isc_mem_inuse(cache->tmctx), writer)); @@ -738,8 +735,7 @@ dns_cache_renderjson(dns_cache_t *cache, void *cstats0) { CHECKMEM(obj); json_object_object_add(cstats, "CoveringNSEC", obj); - obj = json_object_new_int64( - dns_db_nodecount(cache->db, dns_dbtree_main)); + obj = json_object_new_int64(dns_db_nodecount(cache->db)); CHECKMEM(obj); json_object_object_add(cstats, "CacheNodes", obj); diff --git a/lib/dns/db.c b/lib/dns/db.c index 9200352024..2ab84644c9 100644 --- a/lib/dns/db.c +++ b/lib/dns/db.c @@ -734,11 +734,11 @@ freenode: } unsigned int -dns_db_nodecount(dns_db_t *db, dns_dbtree_t tree) { +dns_db_nodecount(dns_db_t *db) { REQUIRE(DNS_DB_VALID(db)); if (db->methods->nodecount != NULL) { - return (db->methods->nodecount)(db, tree); + return (db->methods->nodecount)(db); } return 0; } diff --git a/lib/dns/include/dns/db.h b/lib/dns/include/dns/db.h index 7ebeeb2253..8f0de40c5c 100644 --- a/lib/dns/include/dns/db.h +++ b/lib/dns/include/dns/db.h @@ -127,7 +127,7 @@ typedef struct dns_db_methods { dns_rdatatype_t type, dns_rdatatype_t covers DNS__DB_FLARG); bool (*issecure)(dns_db_t *db); - unsigned int (*nodecount)(dns_db_t *db, dns_dbtree_t); + unsigned int (*nodecount)(dns_db_t *db); isc_result_t (*getoriginnode)(dns_db_t *db, dns_dbnode_t **nodep DNS__DB_FLARG); isc_result_t (*getnsec3parameters)(dns_db_t *db, @@ -1366,9 +1366,9 @@ dns_db_getsoaserial(dns_db_t *db, dns_dbversion_t *ver, uint32_t *serialp); */ unsigned int -dns_db_nodecount(dns_db_t *db, dns_dbtree_t tree); +dns_db_nodecount(dns_db_t *db); /*%< - * Count the number of nodes in 'db' or its auxiliary trees. + * Count the number of nodes in 'db'. * * Requires: * diff --git a/lib/dns/include/dns/types.h b/lib/dns/include/dns/types.h index 931910f9a8..ba1fd98a3d 100644 --- a/lib/dns/include/dns/types.h +++ b/lib/dns/include/dns/types.h @@ -202,12 +202,6 @@ typedef enum { dns_dbtype_stub = 3 } dns_dbtype_t; -typedef enum { - dns_dbtree_main = 0, - dns_dbtree_nsec = 1, - dns_dbtree_nsec3 = 2 -} dns_dbtree_t; - typedef enum { dns_checkdstype_no = 0, dns_checkdstype_yes = 1, diff --git a/lib/dns/qpcache.c b/lib/dns/qpcache.c index fb551e1c8b..efc987c12c 100644 --- a/lib/dns/qpcache.c +++ b/lib/dns/qpcache.c @@ -3218,7 +3218,7 @@ qpcache_deleterdataset(dns_db_t *db, dns_dbnode_t *node, } static unsigned int -nodecount(dns_db_t *db, dns_dbtree_t tree ISC_ATTR_UNUSED) { +nodecount(dns_db_t *db) { qpcache_t *qpdb = (qpcache_t *)db; dns_qp_memusage_t mu; isc_rwlocktype_t tlocktype = isc_rwlocktype_none; diff --git a/lib/dns/qpzone.c b/lib/dns/qpzone.c index 82374dd2fa..9eaf4f28e7 100644 --- a/lib/dns/qpzone.c +++ b/lib/dns/qpzone.c @@ -3867,12 +3867,10 @@ qpzone_detachnode(dns_dbnode_t **nodep DNS__DB_FLARG) { } static unsigned int -nodecount(dns_db_t *db, dns_dbtree_t tree ISC_ATTR_UNUSED) { - qpzonedb_t *qpdb = NULL; +nodecount(dns_db_t *db) { + qpzonedb_t *qpdb = qpdb = (qpzonedb_t *)db; dns_qp_memusage_t mu; - qpdb = (qpzonedb_t *)db; - REQUIRE(VALID_QPZONE(qpdb)); mu = dns_qpmulti_memusage(qpdb->tree); diff --git a/lib/dns/zone.c b/lib/dns/zone.c index e12ecae892..68685dcad2 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -5413,8 +5413,7 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime, } dns_zone_logc(zone, DNS_LOGCATEGORY_ZONELOAD, ISC_LOG_DEBUG(2), - "number of nodes in database: %u", - dns_db_nodecount(db, dns_dbtree_main)); + "number of nodes in database: %u", dns_db_nodecount(db)); if (result == DNS_R_SEENINCLUDE) { DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_HASINCLUDE);