]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Remove unused foundname parameter
authorAlessio Podda <alessio@isc.org>
Sun, 23 Nov 2025 13:59:30 +0000 (14:59 +0100)
committerAlessio Podda <alessio@isc.org>
Wed, 10 Dec 2025 10:28:10 +0000 (11:28 +0100)
The `foundname` parameter in dns_qp_lookup is used only in the unit
tests. This commit simplifies the API by removing it, and modifying the
unit tests to extract the name from pval.

13 files changed:
lib/dns/forward.c
lib/dns/include/dns/qp.h
lib/dns/keytable.c
lib/dns/nametree.c
lib/dns/nta.c
lib/dns/qp.c
lib/dns/qp_p.h
lib/dns/qpcache.c
lib/dns/qpzone.c
lib/dns/rpz.c
lib/dns/zt.c
tests/bench/qplookups.c
tests/dns/qp_test.c

index 14e296ffe111faeb2e874d9cda7f1718ba19511d..795d67f644c4e6fdb737663181ea691d57075fd9 100644 (file)
@@ -163,7 +163,7 @@ dns_fwdtable_find(dns_fwdtable_t *fwdtable, const dns_name_t *name,
        REQUIRE(VALID_FWDTABLE(fwdtable));
 
        dns_qpmulti_query(fwdtable->table, &qpr);
-       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
+       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL,
                               NULL, &pval, NULL);
        if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
                dns_forwarders_t *fwdrs = pval;
index 456cf635a220b139904b68fbe78a78892218b0d4..2ae5b58ce424a46392e4646074a95385e321d23b 100644 (file)
@@ -541,7 +541,7 @@ dns_qp_getname(dns_qpreadable_t qpr, const dns_name_t *name,
 
 isc_result_t
 dns_qp_lookup(dns_qpreadable_t qpr, const dns_name_t *name,
-             dns_namespace_t space, dns_name_t *foundname, dns_qpiter_t *iter,
+             dns_namespace_t space, dns_qpiter_t *iter,
              dns_qpchain_t *chain, void **pval_r, uint32_t *ival_r);
 /*%<
  * Look up a leaf in a qp-trie that is equal to, or an ancestor domain of,
index 1c04b951320cf908831095e4b0b96c96d7b5baf3..5890ffdcd6274e43a406bc0ce7f552fad27b200f 100644 (file)
@@ -511,7 +511,7 @@ dns_keytable_finddeepestmatch(dns_keytable_t *keytable, const dns_name_t *name,
        REQUIRE(foundname != NULL);
 
        dns_qpmulti_query(keytable->table, &qpr);
-       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
+       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL,
                               NULL, &pval, NULL);
        keynode = pval;
 
@@ -541,7 +541,7 @@ dns_keytable_issecuredomain(dns_keytable_t *keytable, const dns_name_t *name,
        REQUIRE(dns_name_isabsolute(name));
 
        dns_qpmulti_query(keytable->table, &qpr);
-       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
+       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL,
                               NULL, &pval, NULL);
        if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
                keynode = pval;
index 7d67bd0c1c128f7c45d00171b59b34ad78fcf9fd..41387bdf67b0aa38f0497d8ae59bcd3109249788 100644 (file)
@@ -283,7 +283,7 @@ dns_nametree_covered(dns_nametree_t *nametree, const dns_name_t *name,
        REQUIRE(VALID_NAMETREE(nametree));
 
        dns_qpmulti_query(nametree->table, &qpr);
-       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
+       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL,
                               NULL, (void **)&node, NULL);
        if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
                if (found != NULL) {
index e2a20faf8b2c3c2cf59149cd326c85d23bedd39e..2ad9c07ea01e6398b1cb2865fa86dc618b2c7f40 100644 (file)
@@ -413,7 +413,7 @@ dns_ntatable_covered(dns_ntatable_t *ntatable, isc_stdtime_t now,
 
        RWLOCK(&ntatable->rwlock, isc_rwlocktype_read);
        dns_qpmulti_query(ntatable->table, &qpr);
-       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
+       result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL,
                               NULL, &pval, NULL);
        nta = pval;
 
index 625e4675b3658cc0b47b779f990b729f685f4dd7..091b691e2f6bcbaa0bbf93ed47c76bb9c741fdbb 100644 (file)
@@ -1857,7 +1857,7 @@ dns_qp_deletename(dns_qp_t *qp, const dns_name_t *name, dns_namespace_t space,
 /***********************************************************************
  *  chains
  */
-static void
+void
 maybe_set_name(dns_qpreader_t *qp, dns_qpnode_t *node, dns_name_t *name) {
        dns_qpkey_t key;
        size_t len;
@@ -2289,7 +2289,7 @@ fix_chain(dns_qpchain_t *chain, size_t offset) {
 
 isc_result_t
 dns_qp_lookup(dns_qpreadable_t qpr, const dns_name_t *name,
-             dns_namespace_t space, dns_name_t *foundname, dns_qpiter_t *iter,
+             dns_namespace_t space, dns_qpiter_t *iter,
              dns_qpchain_t *chain, void **pval_r, uint32_t *ival_r) {
        dns_qpreader_t *qp = dns_qpreader(qpr);
        dns_qpkey_t search, found;
@@ -2303,7 +2303,6 @@ dns_qp_lookup(dns_qpreadable_t qpr, const dns_name_t *name,
        bool setiter = true;
 
        REQUIRE(QP_VALID(qp));
-       REQUIRE(foundname == NULL || ISC_MAGIC_VALID(name, DNS_NAME_MAGIC));
 
        searchlen = dns_qpkey_fromname(search, name, space);
 
@@ -2406,7 +2405,6 @@ dns_qp_lookup(dns_qpreadable_t qpr, const dns_name_t *name,
 
                SET_IF_NOT_NULL(pval_r, leaf_pval(n));
                SET_IF_NOT_NULL(ival_r, leaf_ival(n));
-               maybe_set_name(qp, n, foundname);
                return result;
        }
 
@@ -2420,7 +2418,6 @@ dns_qp_lookup(dns_qpreadable_t qpr, const dns_name_t *name,
                        n = chain->chain[len].node;
                        SET_IF_NOT_NULL(pval_r, leaf_pval(n));
                        SET_IF_NOT_NULL(ival_r, leaf_ival(n));
-                       maybe_set_name(qp, n, foundname);
                        return DNS_R_PARTIALMATCH;
                } else {
                        /*
index ef9f1e33621626577fc8aec32e74accc076cfeb7..51d2be6ea797ee9b5e53f3d78d91daf774f1df33 100644 (file)
@@ -945,6 +945,9 @@ extern uint8_t dns_qp_byte_for_bit[];
 
 /**********************************************************************/
 
+void
+maybe_set_name(dns_qpreader_t *qp, dns_qpnode_t *node, dns_name_t *name);
+
 void
 dns__qp_initialize(void);
 void
index 52ea84506c5a83c44379507f51d382db5f3939f1..92d00a2595de0ab5b3bddfd893647bae2c590dfa 100644 (file)
@@ -1485,7 +1485,7 @@ find_coveringnsec(qpc_search_t *search, const dns_name_t *name,
         * Look for the node in the auxiliary NSEC namespace.
         */
        result = dns_qp_lookup(search->qpdb->tree, name, DNS_DBNAMESPACE_NSEC,
-                              NULL, &iter, NULL, (void **)&node, NULL);
+                              &iter, NULL, (void **)&node, NULL);
        /*
         * When DNS_R_PARTIALMATCH or ISC_R_NOTFOUND is returned from
         * dns_qp_lookup there is potentially a covering NSEC present
@@ -1615,7 +1615,7 @@ qpcache_find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
         * Search down from the root of the tree.
         */
        result = dns_qp_lookup(search.qpdb->tree, name, DNS_DBNAMESPACE_NORMAL,
-                              NULL, NULL, &search.chain, (void **)&node, NULL);
+                              NULL, &search.chain, (void **)&node, NULL);
        if (result != ISC_R_NOTFOUND && foundname != NULL) {
                dns_name_copy(&node->name, foundname);
        }
@@ -2039,7 +2039,7 @@ qpcache_findzonecut(dns_db_t *db, const dns_name_t *name, unsigned int options,
         * Search down from the root of the tree.
         */
        result = dns_qp_lookup(search.qpdb->tree, name, DNS_DBNAMESPACE_NORMAL,
-                              NULL, NULL, &search.chain, (void **)&node, NULL);
+                              NULL, &search.chain, (void **)&node, NULL);
 
        switch (result) {
        case ISC_R_SUCCESS:
@@ -3515,7 +3515,7 @@ resume_iteration(qpc_dbit_t *qpdbiter, bool continuing) {
        if (continuing && qpdbiter->node != NULL) {
                isc_result_t result;
                result = dns_qp_lookup(qpdb->tree, qpdbiter->name,
-                                      DNS_DBNAMESPACE_NORMAL, NULL,
+                                      DNS_DBNAMESPACE_NORMAL,
                                       &qpdbiter->iter, NULL, NULL, NULL);
                INSIST(result == ISC_R_SUCCESS);
        }
@@ -3618,7 +3618,7 @@ dbiterator_seek(dns_dbiterator_t *iterator,
 
        dereference_iter_node(qpdbiter DNS__DB_FLARG_PASS);
 
-       result = dns_qp_lookup(qpdb->tree, name, DNS_DBNAMESPACE_NORMAL, NULL,
+       result = dns_qp_lookup(qpdb->tree, name, DNS_DBNAMESPACE_NORMAL,
                               &qpdbiter->iter, NULL, (void **)&qpdbiter->node,
                               NULL);
 
index 1244426124dd6d9aa38ea8d2f3a35637426d35f5..405a7c55513167f117be54c3b589deae86180026 100644 (file)
@@ -2872,7 +2872,7 @@ find_wildcard(qpz_search_t *search, qpznode_t **nodep, const dns_name_t *qname,
                        }
 
                        result = dns_qp_lookup(&search->qpr, wname, nspace,
-                                              NULL, &wit, NULL,
+                                              &wit, NULL,
                                               (void **)&wnode, NULL);
                        if (result == ISC_R_SUCCESS) {
                                /*
@@ -2954,7 +2954,7 @@ previous_closest_nsec(dns_rdatatype_t type, qpz_search_t *search,
                         */
                        *firstp = false;
                        result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NSEC,
-                                              NULL, nit, NULL, NULL, NULL);
+                                              nit, NULL, NULL, NULL);
                        INSIST(result != ISC_R_NOTFOUND);
                        if (result == ISC_R_SUCCESS) {
                                /*
@@ -2992,7 +2992,7 @@ previous_closest_nsec(dns_rdatatype_t type, qpz_search_t *search,
 
                *nodep = NULL;
                result = dns_qp_lookup(
-                       &search->qpr, name, DNS_DBNAMESPACE_NORMAL, NULL,
+                       &search->qpr, name, DNS_DBNAMESPACE_NORMAL,
                        &search->iter, &search->chain, (void **)nodep, NULL);
                if (result == ISC_R_SUCCESS) {
                        break;
@@ -3374,7 +3374,7 @@ qpzone_find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
        /*
         * Search down from the root of the tree.
         */
-       result = dns_qp_lookup(&search.qpr, name, nspace, NULL, &search.iter,
+       result = dns_qp_lookup(&search.qpr, name, nspace, &search.iter,
                               &search.chain, (void **)&node, NULL);
        if (result != ISC_R_NOTFOUND) {
                dns_name_copy(&node->name, foundname);
@@ -4179,7 +4179,7 @@ dbiterator_first(dns_dbiterator_t *iterator DNS__DB_FLARG) {
                 * origin node.
                 */
                result = dns_qp_lookup(qpdbiter->snap, &qpdb->common.origin,
-                                      DNS_DBNAMESPACE_NSEC3, NULL,
+                                      DNS_DBNAMESPACE_NSEC3,
                                       &qpdbiter->iter, NULL,
                                       (void **)&qpdbiter->node, NULL);
                if (result != ISC_R_SUCCESS ||
@@ -4269,7 +4269,7 @@ dbiterator_last(dns_dbiterator_t *iterator DNS__DB_FLARG) {
                 * The final non-nsec node is before the the NSEC origin node.
                 */
                result = dns_qp_lookup(qpdbiter->snap, &qpdb->common.origin,
-                                      DNS_DBNAMESPACE_NSEC, NULL,
+                                      DNS_DBNAMESPACE_NSEC,
                                       &qpdbiter->iter, NULL,
                                       (void **)&qpdbiter->node, NULL);
                if (result == ISC_R_SUCCESS) {
@@ -4324,21 +4324,21 @@ dbiterator_seek(dns_dbiterator_t *iterator,
        switch (qpdbiter->nsec3mode) {
        case nsec3only:
                result = dns_qp_lookup(
-                       qpdbiter->snap, name, DNS_DBNAMESPACE_NSEC3, NULL,
+                       qpdbiter->snap, name, DNS_DBNAMESPACE_NSEC3,
                        &qpdbiter->iter, NULL, (void **)&qpdbiter->node, NULL);
                break;
        case nonsec3:
                result = dns_qp_lookup(
-                       qpdbiter->snap, name, DNS_DBNAMESPACE_NORMAL, NULL,
+                       qpdbiter->snap, name, DNS_DBNAMESPACE_NORMAL,
                        &qpdbiter->iter, NULL, (void **)&qpdbiter->node, NULL);
                break;
        case full:
                result = dns_qp_lookup(
-                       qpdbiter->snap, name, DNS_DBNAMESPACE_NORMAL, NULL,
+                       qpdbiter->snap, name, DNS_DBNAMESPACE_NORMAL,
                        &qpdbiter->iter, NULL, (void **)&qpdbiter->node, NULL);
                if (result != ISC_R_SUCCESS) {
                        tresult = dns_qp_lookup(qpdbiter->snap, name,
-                                               DNS_DBNAMESPACE_NSEC3, NULL,
+                                               DNS_DBNAMESPACE_NSEC3,
                                                &qpdbiter->iter, NULL,
                                                (void **)&qpdbiter->node, NULL);
                        if (tresult == ISC_R_SUCCESS) {
@@ -4426,7 +4426,7 @@ dbiterator_prev(dns_dbiterator_t *iterator DNS__DB_FLARG) {
 
                INSIST(qpdbiter->node->nspace == DNS_DBNAMESPACE_NSEC);
                result = dns_qp_lookup(qpdbiter->snap, &qpdb->common.origin,
-                                      DNS_DBNAMESPACE_NSEC, NULL,
+                                      DNS_DBNAMESPACE_NSEC,
                                       &qpdbiter->iter, NULL,
                                       (void **)&qpdbiter->node, NULL);
 
@@ -4533,7 +4533,7 @@ dbiterator_next(dns_dbiterator_t *iterator DNS__DB_FLARG) {
                INSIST(qpdbiter->node->nspace == DNS_DBNAMESPACE_NSEC);
 
                result = dns_qp_lookup(qpdbiter->snap, &qpdb->common.origin,
-                                      DNS_DBNAMESPACE_NSEC3, NULL,
+                                      DNS_DBNAMESPACE_NSEC3,
                                       &qpdbiter->iter, NULL,
                                       (void **)&qpdbiter->node, NULL);
                if (result != ISC_R_SUCCESS ||
@@ -4646,7 +4646,7 @@ qpzone_createiterator(dns_db_t *db, unsigned int options,
                 * seek the NSEC3 origin node.
                 */
                result = dns_qp_lookup(iter->snap, &qpdb->common.origin,
-                                      DNS_DBNAMESPACE_NSEC3, NULL, &iter->iter,
+                                      DNS_DBNAMESPACE_NSEC3, &iter->iter,
                                       NULL, NULL, NULL);
                INSIST(result == ISC_R_SUCCESS);
                break;
index e0e9bbd6d46d3ba0ea354a1138ffe2095acdc2e1..3cf30b36088c2f6714be13428082b2d3112797e3 100644 (file)
@@ -2496,7 +2496,7 @@ dns_rpz_find_name(dns_rpz_zones_t *rpzs, dns_rpz_type_t rpz_type,
        dns_qpmulti_query(rpzs->table, &qpr);
        dns_qpchain_init(&qpr, &chain);
 
-       result = dns_qp_lookup(&qpr, trig_name, DNS_DBNAMESPACE_NORMAL, NULL,
+       result = dns_qp_lookup(&qpr, trig_name, DNS_DBNAMESPACE_NORMAL,
                               NULL, &chain, (void **)&data, NULL);
        switch (result) {
        case ISC_R_SUCCESS:
index d17c8bae22ab16b14f262db3309ec23f202bbd56..758a4eae64df494ba8093e193b69ea6c37d4e75f 100644 (file)
@@ -183,7 +183,7 @@ dns_zt_find(dns_zt_t *zt, const dns_name_t *name, dns_ztfind_t options,
                result = dns_qp_getname(&qpr, name, DNS_DBNAMESPACE_NORMAL,
                                        &pval, NULL);
        } else {
-               result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL, NULL,
+               result = dns_qp_lookup(&qpr, name, DNS_DBNAMESPACE_NORMAL,
                                       NULL, &chain, &pval, NULL);
                if (exactopts == DNS_ZTFIND_NOEXACT && result == ISC_R_SUCCESS)
                {
index 1c142c123b35c052a6d792b21808eac36cb61fc9..f83b1846d352241cd5c97d27565b8a8bbbf13518 100644 (file)
@@ -236,7 +236,7 @@ main(int argc, char **argv) {
        start = isc_time_monotonic();
        for (i = 0; i < n; i++) {
                name = dns_fixedname_name(&items[i]);
-               dns_qp_lookup(qp, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
+               dns_qp_lookup(qp, name, DNS_DBNAMESPACE_NORMAL, NULL,
                              NULL, NULL, NULL);
        }
        stop = isc_time_monotonic();
@@ -262,7 +262,7 @@ main(int argc, char **argv) {
                        ++search->ndata[1];
                }
 
-               dns_qp_lookup(qp, search, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
+               dns_qp_lookup(qp, search, DNS_DBNAMESPACE_NORMAL, NULL,
                              NULL, NULL, NULL);
        }
        stop = isc_time_monotonic();
index e6729056e993be36adc76f3f21551daf9c000cef..6bb9d91ce4548975507f6b556f3739cf0703f2e7 100644 (file)
@@ -418,11 +418,21 @@ check_partialmatch(dns_qp_t *qp, struct check_partialmatch check[],
                dns_fixedname_t fn1, fn2;
                dns_name_t *name = dns_fixedname_initname(&fn1);
                dns_name_t *foundname = dns_fixedname_initname(&fn2);
+               dns_qpchain_t chain;
                void *pval = NULL;
 
                dns_test_namefromstring(check[i].query, &fn1);
-               result = dns_qp_lookup(qp, name, space, foundname, NULL, NULL,
-                                      &pval, NULL);
+               dns_qpchain_init(qp, &chain);
+               result = dns_qp_lookup(qp, name, space, NULL,
+                                      &chain, &pval, NULL);
+
+               /* Extract the found name using maybe_set_name if we found something */
+               if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
+                       if (chain.len > 0) {
+                               dns_qpnode_t *node = chain.chain[chain.len - 1].node;
+                               maybe_set_name((dns_qpreader_t *)qp, node, foundname);
+                       }
+               }
 
 #if 0
                fprintf(stderr, "%s%s %s (expected %s) "
@@ -584,7 +594,7 @@ check_qpchainiter(dns_qp_t *qp, struct check_qpchain check[],
 
                dns_qpchain_init(qp, &chain);
                dns_test_namefromstring(check[i].query, &fn1);
-               result = dns_qp_lookup(qp, name, check[i].space, NULL, iter,
+               result = dns_qp_lookup(qp, name, check[i].space, iter,
                                       &chain, NULL, NULL);
 #if 0
                fprintf(stderr,
@@ -810,7 +820,7 @@ check_predecessors_withchain(dns_qp_t *qp, struct check_predecessors check[],
                result = dns_name_tostring(expred, &predstr, isc_g_mctx);
                assert_int_equal(result, ISC_R_SUCCESS);
 
-               result = dns_qp_lookup(qp, name, check[i].space, NULL, &it,
+               result = dns_qp_lookup(qp, name, check[i].space, &it,
                                       chain, NULL, NULL);
 #if 0
                fprintf(stderr, "%s %s: expected %s got %s\n", check[i].query,