]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Extend dns_db_allrdatasets to control interation results
authorMark Andrews <marka@isc.org>
Tue, 15 Nov 2022 23:47:40 +0000 (10:47 +1100)
committerMark Andrews <marka@isc.org>
Thu, 8 Dec 2022 00:20:35 +0000 (11:20 +1100)
Add an options parameter to control what rdatasets are returned when
iteratating over the node.  Specific modes will be added later.

(cherry picked from commit 7695c36a5de01c441690f2a0e46f176321b58896)

28 files changed:
bin/check/check-tool.c
bin/dnssec/dnssec-signzone.c
bin/tests/optional/db_test.c
bin/tests/optional/nsecify.c
bin/tests/system/dyndb/driver/db.c
lib/dns/cache.c
lib/dns/catz.c
lib/dns/client.c
lib/dns/db.c
lib/dns/ecdb.c
lib/dns/include/dns/db.h
lib/dns/include/dns/rdatasetiter.h
lib/dns/journal.c
lib/dns/masterdump.c
lib/dns/nsec.c
lib/dns/nsec3.c
lib/dns/rbtdb.c
lib/dns/rootns.c
lib/dns/rpz.c
lib/dns/rriterator.c
lib/dns/sdb.c
lib/dns/sdlz.c
lib/dns/tests/dbversion_test.c
lib/dns/update.c
lib/dns/zone.c
lib/dns/zoneverify.c
lib/ns/query.c
lib/ns/update.c

index a9c4c69c6492949000b691e198a8891e067e4a82..cad2185045ab53b180e9654a85b5abae9d4ca79d 100644 (file)
@@ -610,7 +610,7 @@ check_ttls(dns_zone_t *zone, dns_ttl_t maxttl) {
                }
                CHECK(result);
 
-               CHECK(dns_db_allrdatasets(db, node, version, 0, &rdsiter));
+               CHECK(dns_db_allrdatasets(db, node, version, 0, 0, &rdsiter));
                for (result = dns_rdatasetiter_first(rdsiter);
                     result == ISC_R_SUCCESS;
                     result = dns_rdatasetiter_next(rdsiter))
index 6befca18727860e373a5e677635e19065773c5f6..2d2c1587762b2dfc67151f0367b967eaec60df1f 100644 (file)
@@ -227,7 +227,7 @@ dumpnode(dns_name_t *name, dns_dbnode_t *node) {
                return;
        }
 
-       result = dns_db_allrdatasets(gdb, node, gversion, 0, &iter);
+       result = dns_db_allrdatasets(gdb, node, gversion, 0, 0, &iter);
        check_result(result, "dns_db_allrdatasets");
 
        dns_rdataset_init(&rds);
@@ -1192,7 +1192,7 @@ signname(dns_dbnode_t *node, dns_name_t *name) {
        dns_diff_init(mctx, &del);
        dns_diff_init(mctx, &add);
        rdsiter = NULL;
-       result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter);
+       result = dns_db_allrdatasets(gdb, node, gversion, 0, 0, &rdsiter);
        check_result(result, "dns_db_allrdatasets()");
        result = dns_rdatasetiter_first(rdsiter);
        while (result == ISC_R_SUCCESS) {
@@ -1266,7 +1266,7 @@ active_node(dns_dbnode_t *node) {
        bool found;
 
        dns_rdataset_init(&rdataset);
-       result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter);
+       result = dns_db_allrdatasets(gdb, node, gversion, 0, 0, &rdsiter);
        check_result(result, "dns_db_allrdatasets()");
        result = dns_rdatasetiter_first(rdsiter);
        while (result == ISC_R_SUCCESS) {
@@ -1312,7 +1312,8 @@ active_node(dns_dbnode_t *node) {
                /*
                 * Delete RRSIGs for types that no longer exist.
                 */
-               result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter2);
+               result = dns_db_allrdatasets(gdb, node, gversion, 0, 0,
+                                            &rdsiter2);
                check_result(result, "dns_db_allrdatasets()");
                for (result = dns_rdatasetiter_first(rdsiter);
                     result == ISC_R_SUCCESS;
@@ -1514,7 +1515,7 @@ cleannode(dns_db_t *db, dns_dbversion_t *dbversion, dns_dbnode_t *node) {
        }
 
        dns_rdataset_init(&set);
-       result = dns_db_allrdatasets(db, node, dbversion, 0, &rdsiter);
+       result = dns_db_allrdatasets(db, node, dbversion, 0, 0, &rdsiter);
        check_result(result, "dns_db_allrdatasets");
        result = dns_rdatasetiter_first(rdsiter);
        while (result == ISC_R_SUCCESS) {
@@ -1814,7 +1815,7 @@ remove_records(dns_dbnode_t *node, dns_rdatatype_t which, bool checknsec) {
        /*
         * Delete any records of the given type at the apex.
         */
-       result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter);
+       result = dns_db_allrdatasets(gdb, node, gversion, 0, 0, &rdsiter);
        check_result(result, "dns_db_allrdatasets()");
        for (result = dns_rdatasetiter_first(rdsiter); result == ISC_R_SUCCESS;
             result = dns_rdatasetiter_next(rdsiter))
@@ -1857,7 +1858,7 @@ remove_sigs(dns_dbnode_t *node, bool delegation, dns_rdatatype_t which) {
        dns_rdataset_t rdataset;
 
        dns_rdataset_init(&rdataset);
-       result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter);
+       result = dns_db_allrdatasets(gdb, node, gversion, 0, 0, &rdsiter);
        check_result(result, "dns_db_allrdatasets()");
        for (result = dns_rdatasetiter_first(rdsiter); result == ISC_R_SUCCESS;
             result = dns_rdatasetiter_next(rdsiter))
@@ -1921,7 +1922,8 @@ nsecify(void) {
        {
                result = dns_dbiterator_current(dbiter, &node, name);
                check_dns_dbiterator_current(result);
-               result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter);
+               result = dns_db_allrdatasets(gdb, node, gversion, 0, 0,
+                                            &rdsiter);
                check_result(result, "dns_db_allrdatasets()");
                for (result = dns_rdatasetiter_first(rdsiter);
                     result == ISC_R_SUCCESS;
@@ -2335,7 +2337,8 @@ cleanup_zone(void) {
        {
                result = dns_dbiterator_current(dbiter, &node, name);
                check_dns_dbiterator_current(result);
-               result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter);
+               result = dns_db_allrdatasets(gdb, node, gversion, 0, 0,
+                                            &rdsiter);
                check_result(result, "dns_db_allrdatasets()");
                for (result = dns_rdatasetiter_first(rdsiter);
                     result == ISC_R_SUCCESS;
index 23b727f74eab458d63d5fda2eca3944573943379..05bd748abb3aaee9ba7906b5029d775d59b00e8d 100644 (file)
@@ -199,7 +199,7 @@ list(dbinfo *dbi, char *seektext) {
                if (result != ISC_R_SUCCESS && result != DNS_R_NEWORIGIN) {
                        break;
                }
-               result = dns_db_allrdatasets(dbi->db, node, dbi->iversion, 0,
+               result = dns_db_allrdatasets(dbi->db, node, dbi->iversion, 0, 0,
                                             &rdsiter);
                if (result != ISC_R_SUCCESS) {
                        dns_db_detachnode(dbi->db, &node);
@@ -891,7 +891,7 @@ main(int argc, char *argv[]) {
 
                if (!found_as && type == dns_rdatatype_any) {
                        rdsiter = NULL;
-                       result = dns_db_allrdatasets(db, node, version, 0,
+                       result = dns_db_allrdatasets(db, node, version, 0, 0,
                                                     &rdsiter);
                        if (result == ISC_R_SUCCESS) {
                                if (!quiet) {
index 3e3238247edbc2a6c3a1c78e86d65d44fd6de833..357b47fce8f291428d6a62530e4017fb36a6936f 100644 (file)
@@ -54,7 +54,7 @@ active_node(dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node) {
 
        dns_rdataset_init(&rdataset);
        rdsiter = NULL;
-       result = dns_db_allrdatasets(db, node, version, 0, &rdsiter);
+       result = dns_db_allrdatasets(db, node, version, 0, 0, &rdsiter);
        check_result(result, "dns_db_allrdatasets()");
        result = dns_rdatasetiter_first(rdsiter);
        while (result == ISC_R_SUCCESS) {
index a32e3f4b04f68bcc5468430bc36835b101290579..bed7d3e3a0f435db397146058ff2f815d683bc14 100644 (file)
@@ -311,13 +311,14 @@ findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
 
 static isc_result_t
 allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
-            isc_stdtime_t now, dns_rdatasetiter_t **iteratorp) {
+            unsigned int options, isc_stdtime_t now,
+            dns_rdatasetiter_t **iteratorp) {
        sampledb_t *sampledb = (sampledb_t *)db;
 
        REQUIRE(VALID_SAMPLEDB(sampledb));
 
-       return (dns_db_allrdatasets(sampledb->rbtdb, node, version, now,
-                                   iteratorp));
+       return (dns_db_allrdatasets(sampledb->rbtdb, node, version, options,
+                                   now, iteratorp));
 }
 
 static isc_result_t
index ed607075b4fd3336a5d4d03b35e10ae24882168a..d684f8eb660768c637dccd51820dc109296696c7 100644 (file)
@@ -1102,7 +1102,8 @@ clearnode(dns_db_t *db, dns_dbnode_t *node) {
        isc_result_t result;
        dns_rdatasetiter_t *iter = NULL;
 
-       result = dns_db_allrdatasets(db, node, NULL, (isc_stdtime_t)0, &iter);
+       result = dns_db_allrdatasets(db, node, NULL, 0, (isc_stdtime_t)0,
+                                    &iter);
        if (result != ISC_R_SUCCESS) {
                return (result);
        }
index 68927e84bbff7a9f01b550952a21789372331df1..49ad9bf37bfd1ad02eaafd94d181c645bdc798a6 100644 (file)
@@ -1921,7 +1921,7 @@ dns_catz_update_from_db(dns_db_t *db, dns_catz_zones_t *catzs) {
                        break;
                }
 
-               result = dns_db_allrdatasets(db, node, oldzone->dbversion, 0,
+               result = dns_db_allrdatasets(db, node, oldzone->dbversion, 0, 0,
                                             &rdsiter);
                if (result != ISC_R_SUCCESS) {
                        isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
index b3b1c656b581e0ed831c45f8eaeb0c8f871f86fe..9cfc810e47392346879bd138520a9691dc97513a 100644 (file)
@@ -823,7 +823,7 @@ client_resfind(resctx_t *rctx, dns_fetchevent_t *event) {
                        int n = 0;
                        dns_rdatasetiter_t *rdsiter = NULL;
 
-                       tresult = dns_db_allrdatasets(db, node, NULL, 0,
+                       tresult = dns_db_allrdatasets(db, node, NULL, 0, 0,
                                                      &rdsiter);
                        if (tresult != ISC_R_SUCCESS) {
                                result = tresult;
index 04cf6560feaec9b41646530e2f212f6cd925759e..41dbaa3d688a0d3e4a2a9093628bdab050556f8c 100644 (file)
@@ -684,7 +684,8 @@ dns_db_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
 
 isc_result_t
 dns_db_allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
-                   isc_stdtime_t now, dns_rdatasetiter_t **iteratorp) {
+                   unsigned int options, isc_stdtime_t now,
+                   dns_rdatasetiter_t **iteratorp) {
        /*
         * Make '*iteratorp' an rdataset iteratator for all rdatasets at
         * 'node' in version 'version' of 'db'.
@@ -693,7 +694,8 @@ dns_db_allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
        REQUIRE(DNS_DB_VALID(db));
        REQUIRE(iteratorp != NULL && *iteratorp == NULL);
 
-       return ((db->methods->allrdatasets)(db, node, version, now, iteratorp));
+       return ((db->methods->allrdatasets)(db, node, version, options, now,
+                                           iteratorp));
 }
 
 isc_result_t
index 0222682fd592321bdae5ff0c45e6661346bfe1ed..abbb8d9697fe79876dcf325b94db5bfd8ec9a561 100644 (file)
@@ -484,7 +484,8 @@ createiterator(dns_db_t *db, unsigned int options,
 
 static isc_result_t
 allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
-            isc_stdtime_t now, dns_rdatasetiter_t **iteratorp) {
+            unsigned int options, isc_stdtime_t now,
+            dns_rdatasetiter_t **iteratorp) {
        dns_ecdb_t *ecdb = (dns_ecdb_t *)db;
        dns_ecdbnode_t *ecdbnode = (dns_ecdbnode_t *)node;
        isc_mem_t *mctx;
@@ -503,6 +504,7 @@ allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
        iterator->common.node = NULL;
        attachnode(db, node, &iterator->common.node);
        iterator->common.version = version;
+       iterator->common.options = options;
        iterator->common.now = now;
 
        *iteratorp = (dns_rdatasetiter_t *)iterator;
index 08bdc80e4ee3a41c0519ee50e78b0ebe403a2bc7..13e2c14c0943e17161784a7012e1b12fe279992b 100644 (file)
@@ -116,8 +116,8 @@ typedef struct dns_dbmethods {
                                     dns_rdataset_t *rdataset,
                                     dns_rdataset_t *sigrdataset);
        isc_result_t (*allrdatasets)(dns_db_t *db, dns_dbnode_t *node,
-                                    dns_dbversion_t     *version,
-                                    isc_stdtime_t        now,
+                                    dns_dbversion_t *version,
+                                    unsigned int options, isc_stdtime_t now,
                                     dns_rdatasetiter_t **iteratorp);
        isc_result_t (*addrdataset)(dns_db_t *db, dns_dbnode_t *node,
                                    dns_dbversion_t *version, isc_stdtime_t now,
@@ -1177,7 +1177,8 @@ dns_db_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
 
 isc_result_t
 dns_db_allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
-                   isc_stdtime_t now, dns_rdatasetiter_t **iteratorp);
+                   unsigned int options, isc_stdtime_t now,
+                   dns_rdatasetiter_t **iteratorp);
 /*%<
  * Make '*iteratorp' an rdataset iterator for all rdatasets at 'node' in
  * version 'version' of 'db'.
@@ -1186,6 +1187,9 @@ dns_db_allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
  *
  * \li If 'version' is NULL, then the current version will be used.
  *
+ * \li 'options' controls which rdatasets are selected when interating over
+ *     the node.
+ *
  * \li The 'now' field is ignored if 'db' is a zone database.  If 'db' is a
  *     cache database, an rdataset will not be found unless it expires after
  *     'now'.  Any ANY query will not match unless at least one rdataset at
index 0ad1e407cb64abd857129114e017adf8bf034edb..2df4aad97fd83b97f876937d7f140de82921f731 100644 (file)
@@ -94,6 +94,7 @@ struct dns_rdatasetiter {
        dns_dbnode_t              *node;
        dns_dbversion_t           *version;
        isc_stdtime_t              now;
+       unsigned int               options;
 };
 
 void
index 8a32c0135e858bb714689a771840b4d5566bed22..b5865285d3c9f8415a9008d57cc3438e1b4152ce 100644 (file)
@@ -2126,7 +2126,7 @@ get_name_diff(dns_db_t *db, dns_dbversion_t *ver, isc_stdtime_t now,
                return (result);
        }
 
-       result = dns_db_allrdatasets(db, node, ver, now, &rdsiter);
+       result = dns_db_allrdatasets(db, node, ver, 0, now, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                goto cleanup_node;
        }
index 0a017fb6999be166f1f8e816aa8302b093850261..efd08bc8bd2c7d09a575000784fc015df2c2dd20 100644 (file)
@@ -1790,7 +1790,7 @@ dumptostream(dns_dumpctx_t *dctx) {
                result = dns_dbiterator_pause(dctx->dbiter);
                RUNTIME_CHECK(result == ISC_R_SUCCESS);
 
-               result = dns_db_allrdatasets(dctx->db, node, dctx->version,
+               result = dns_db_allrdatasets(dctx->db, node, dctx->version, 0,
                                             dctx->now, &rdsiter);
                if (result != ISC_R_SUCCESS) {
                        dns_db_detachnode(dctx->db, &node);
@@ -2026,7 +2026,7 @@ dns_master_dumpnodetostream(isc_mem_t *mctx, dns_db_t *db,
 
        isc_buffer_init(&buffer, bufmem, initial_buffer_length);
 
-       result = dns_db_allrdatasets(db, node, version, now, &rdsiter);
+       result = dns_db_allrdatasets(db, node, version, 0, now, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                goto failure;
        }
index 4eda3d8450da054b0b5b248bba5bb9f378ece211..3089c9eac29d1e9a2544d48ba9c10bed20e23341 100644 (file)
@@ -128,7 +128,7 @@ dns_nsec_buildrdata(dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node,
        max_type = dns_rdatatype_nsec;
        dns_rdataset_init(&rdataset);
        rdsiter = NULL;
-       result = dns_db_allrdatasets(db, node, version, 0, &rdsiter);
+       result = dns_db_allrdatasets(db, node, version, 0, 0, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                return (result);
        }
index 5a961ba4f590fe6ca00b1ac78e42048a6a9fcfa0..520b031117eef9050068736f27c73948b2d92538 100644 (file)
@@ -118,7 +118,7 @@ dns_nsec3_buildrdata(dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node,
        }
        dns_rdataset_init(&rdataset);
        rdsiter = NULL;
-       result = dns_db_allrdatasets(db, node, version, 0, &rdsiter);
+       result = dns_db_allrdatasets(db, node, version, 0, 0, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                return (result);
        }
@@ -365,7 +365,7 @@ name_exists(dns_db_t *db, dns_dbversion_t *version, const dns_name_t *name,
                return (result);
        }
 
-       result = dns_db_allrdatasets(db, node, version, (isc_stdtime_t)0,
+       result = dns_db_allrdatasets(db, node, version, 0, (isc_stdtime_t)0,
                                     &iter);
        if (result != ISC_R_SUCCESS) {
                goto cleanup_node;
index ec3e3c4f52b01a158f20951af1de4e386400a27f..3b2c179941e5a350c9be48f777a3803fff8e8c9f 100644 (file)
@@ -5975,7 +5975,8 @@ cache_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
 
 static isc_result_t
 allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
-            isc_stdtime_t now, dns_rdatasetiter_t **iteratorp) {
+            unsigned int options, isc_stdtime_t now,
+            dns_rdatasetiter_t **iteratorp) {
        dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
        dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
        rbtdb_version_t *rbtversion = version;
@@ -6007,6 +6008,7 @@ allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
        iterator->common.db = db;
        iterator->common.node = node;
        iterator->common.version = (dns_dbversion_t *)rbtversion;
+       iterator->common.options = options;
        iterator->common.now = now;
 
        isc_refcount_increment(&rbtnode->references);
index 3172891dc94a353e862ca1a63ab9fd557d0cbdf1..69e26679535db296a534fcf11cd3aadb108cad31 100644 (file)
@@ -176,7 +176,7 @@ check_hints(dns_db_t *db) {
                if (result != ISC_R_SUCCESS) {
                        goto cleanup;
                }
-               result = dns_db_allrdatasets(db, node, NULL, now, &rdsiter);
+               result = dns_db_allrdatasets(db, node, NULL, 0, now, &rdsiter);
                if (result != ISC_R_SUCCESS) {
                        goto cleanup;
                }
index 0cf387139424ec778c54998fcd14560a5ff33671..5b4187c3987cf15918f6c43eee68fdd975ef1037 100644 (file)
@@ -1957,7 +1957,7 @@ update_quantum(isc_task_t *task, isc_event_t *event) {
                }
 
                result = dns_db_allrdatasets(rpz->updb, node, rpz->updbversion,
-                                            0, &rdsiter);
+                                            0, 0, &rdsiter);
                if (result != ISC_R_SUCCESS) {
                        isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
                                      DNS_LOGMODULE_MASTER, ISC_LOG_ERROR,
index a7f376e6738810c221eca820d7a88e3d20b642be..9b40597fad386499a6df03cab0cb2fe74df7e8c4 100644 (file)
@@ -84,7 +84,7 @@ dns_rriterator_first(dns_rriterator_t *it) {
                        return (it->result);
                }
 
-               it->result = dns_db_allrdatasets(it->db, it->node, it->ver,
+               it->result = dns_db_allrdatasets(it->db, it->node, it->ver, 0,
                                                 it->now, &it->rdatasetit);
                if (it->result != ISC_R_SUCCESS) {
                        return (it->result);
@@ -138,7 +138,7 @@ dns_rriterator_nextrrset(dns_rriterator_t *it) {
                if (it->result != ISC_R_SUCCESS) {
                        return (it->result);
                }
-               it->result = dns_db_allrdatasets(it->db, it->node, it->ver,
+               it->result = dns_db_allrdatasets(it->db, it->node, it->ver, 0,
                                                 it->now, &it->rdatasetit);
                if (it->result != ISC_R_SUCCESS) {
                        return (it->result);
index 9d69f04206a49856c8d82e00cb7c39f714e3589d..2c6802ff9cc30301863bece611798b3818695381 100644 (file)
@@ -1169,7 +1169,8 @@ findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
 
 static isc_result_t
 allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
-            isc_stdtime_t now, dns_rdatasetiter_t **iteratorp) {
+            unsigned int options, isc_stdtime_t now,
+            dns_rdatasetiter_t **iteratorp) {
        sdb_rdatasetiter_t *iterator;
 
        REQUIRE(version == NULL || version == &dummy);
@@ -1185,6 +1186,7 @@ allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
        iterator->common.node = NULL;
        attachnode(db, node, &iterator->common.node);
        iterator->common.version = version;
+       iterator->common.options = options;
        iterator->common.now = now;
 
        *iteratorp = (dns_rdatasetiter_t *)iterator;
index 49e8edd416da04c403635c58e99238e2a6b53979..8ba7aaeda4c9064e77e0cb15fa9ea929b2e36996 100644 (file)
@@ -1021,7 +1021,8 @@ find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
 
 static isc_result_t
 allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
-            isc_stdtime_t now, dns_rdatasetiter_t **iteratorp) {
+            unsigned int options, isc_stdtime_t now,
+            dns_rdatasetiter_t **iteratorp) {
        dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
        sdlz_rdatasetiter_t *iterator;
 
@@ -1041,6 +1042,7 @@ allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
        iterator->common.node = NULL;
        attachnode(db, node, &iterator->common.node);
        iterator->common.version = version;
+       iterator->common.options = options;
        iterator->common.now = now;
 
        *iteratorp = (dns_rdatasetiter_t *)iterator;
index 7dabf74aa5898fbef499ce4244bda574974e1030..70a5124758254303c37613ba92f78cd5045b31f9 100644 (file)
@@ -206,10 +206,10 @@ allrdatasets(void **state) {
        res = dns_db_findnode(db1, dns_rootname, false, &node);
        assert_int_equal(res, ISC_R_SUCCESS);
 
-       res = dns_db_allrdatasets(db1, node, v1, 0, &iterator);
+       res = dns_db_allrdatasets(db1, node, v1, 0, 0, &iterator);
        assert_int_equal(res, ISC_R_SUCCESS);
 
-       check_assertion(dns_db_allrdatasets(db1, node, v2, 0, &iterator));
+       check_assertion(dns_db_allrdatasets(db1, node, v2, 0, 0, &iterator));
 
        dns_rdatasetiter_destroy(&iterator);
        assert_null(iterator);
index 05e36c069a9cd76ebfda1a963d28bb72dc4f0716..9d712380b75aa3f76ac42d1dd869446392cb4e34 100644 (file)
@@ -366,7 +366,7 @@ foreach_rrset(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
        }
 
        iter = NULL;
-       result = dns_db_allrdatasets(db, node, ver, (isc_stdtime_t)0, &iter);
+       result = dns_db_allrdatasets(db, node, ver, 0, (isc_stdtime_t)0, &iter);
        if (result != ISC_R_SUCCESS) {
                goto cleanup_node;
        }
@@ -1398,7 +1398,7 @@ add_exposed_sigs(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db,
        }
 
        iter = NULL;
-       result = dns_db_allrdatasets(db, node, ver, (isc_stdtime_t)0, &iter);
+       result = dns_db_allrdatasets(db, node, ver, 0, (isc_stdtime_t)0, &iter);
        if (result != ISC_R_SUCCESS) {
                goto cleanup_node;
        }
index 21e71767e93424942fdfef3562e3909e4d50f454..2456cd23bef2eef4cc6ef5377348369cdd9c3f48 100644 (file)
@@ -3233,7 +3233,7 @@ zone_check_dup(dns_zone_t *zone, dns_db_t *db) {
                        continue;
                }
 
-               result = dns_db_allrdatasets(db, node, NULL, 0, &rdsit);
+               result = dns_db_allrdatasets(db, node, NULL, 0, 0, &rdsit);
                if (result != ISC_R_SUCCESS) {
                        continue;
                }
@@ -7598,7 +7598,7 @@ next_active(dns_db_t *db, dns_dbversion_t *version, dns_name_t *oldname,
                /*
                 * Is this node empty?
                 */
-               CHECK(dns_db_allrdatasets(db, node, version, 0, &rdsit));
+               CHECK(dns_db_allrdatasets(db, node, version, 0, 0, &rdsit));
                result = dns_rdatasetiter_first(rdsit);
                dns_db_detachnode(db, &node);
                dns_rdatasetiter_destroy(&rdsit);
@@ -7721,7 +7721,7 @@ check_if_bottom_of_zone(dns_db_t *db, dns_dbnode_t *node,
 
        REQUIRE(is_bottom_of_zone != NULL);
 
-       result = dns_db_allrdatasets(db, node, version, 0, &iterator);
+       result = dns_db_allrdatasets(db, node, version, 0, 0, &iterator);
        if (result != ISC_R_SUCCESS) {
                if (result == ISC_R_NOTFOUND) {
                        result = ISC_R_SUCCESS;
@@ -7778,7 +7778,7 @@ sign_a_node(dns_db_t *db, dns_zone_t *zone, dns_name_t *name,
        unsigned char data[1024];
        bool seen_soa, seen_ns, seen_rr, seen_nsec, seen_nsec3, seen_ds;
 
-       result = dns_db_allrdatasets(db, node, version, 0, &iterator);
+       result = dns_db_allrdatasets(db, node, version, 0, 0, &iterator);
        if (result != ISC_R_SUCCESS) {
                if (result == ISC_R_NOTFOUND) {
                        result = ISC_R_SUCCESS;
@@ -8716,7 +8716,8 @@ zone_nsec3chain(dns_zone_t *zone) {
                /*
                 * Check to see if this is a bottom of zone node.
                 */
-               result = dns_db_allrdatasets(db, node, version, 0, &iterator);
+               result = dns_db_allrdatasets(db, node, version, 0, 0,
+                                            &iterator);
                if (result == ISC_R_NOTFOUND) {
                        /* Empty node? */
                        goto next_addnode;
@@ -8979,7 +8980,8 @@ zone_nsec3chain(dns_zone_t *zone) {
                /*
                 * Check to see if this is a bottom of zone node.
                 */
-               result = dns_db_allrdatasets(db, node, version, 0, &iterator);
+               result = dns_db_allrdatasets(db, node, version, 0, 0,
+                                            &iterator);
                if (result == ISC_R_NOTFOUND) {
                        /* Empty node? */
                        goto next_removenode;
@@ -9100,7 +9102,8 @@ skip_removals:
                bool rebuild_nsec = false, rebuild_nsec3 = false;
                result = dns_db_getoriginnode(db, &node);
                RUNTIME_CHECK(result == ISC_R_SUCCESS);
-               result = dns_db_allrdatasets(db, node, version, 0, &iterator);
+               result = dns_db_allrdatasets(db, node, version, 0, 0,
+                                            &iterator);
                if (result != ISC_R_SUCCESS) {
                        dnssec_log(zone, ISC_LOG_ERROR,
                                   "zone_nsec3chain:dns_db_allrdatasets -> %s",
@@ -9401,7 +9404,7 @@ del_sig(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
        char namebuf[DNS_NAME_FORMATSIZE];
        dns_name_format(name, namebuf, sizeof(namebuf));
 
-       result = dns_db_allrdatasets(db, node, version, 0, &iterator);
+       result = dns_db_allrdatasets(db, node, version, 0, 0, &iterator);
        if (result != ISC_R_SUCCESS) {
                if (result == ISC_R_NOTFOUND) {
                        result = ISC_R_SUCCESS;
@@ -17041,7 +17044,7 @@ copy_non_dnssec_records(dns_db_t *db, dns_db_t *version, dns_db_t *rawdb,
                goto cleanup;
        }
 
-       result = dns_db_allrdatasets(rawdb, rawnode, NULL, 0, &rdsit);
+       result = dns_db_allrdatasets(rawdb, rawnode, NULL, 0, 0, &rdsit);
        if (result != ISC_R_SUCCESS) {
                goto cleanup;
        }
index 8237694c871104689b428d6d59505584b284fcd4..19ecdc039a5e4876e6af37b500e142e123842d8c 100644 (file)
@@ -308,7 +308,7 @@ check_no_rrsig(const vctx_t *vctx, const dns_rdataset_t *rdataset,
        isc_result_t result;
 
        dns_rdataset_init(&sigrdataset);
-       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, &rdsiter);
+       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, 0, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                zoneverify_log_error(vctx, "dns_db_allrdatasets(): %s",
                                     isc_result_totext(result));
@@ -817,7 +817,7 @@ verifyset(vctx_t *vctx, dns_rdataset_t *rdataset, const dns_name_t *name,
        isc_result_t result;
 
        dns_rdataset_init(&sigrdataset);
-       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, &rdsiter);
+       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, 0, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                zoneverify_log_error(vctx, "dns_db_allrdatasets(): %s",
                                     isc_result_totext(result));
@@ -921,7 +921,7 @@ verifynode(vctx_t *vctx, const dns_name_t *name, dns_dbnode_t *node,
 
        REQUIRE(vresult != NULL || (nsecset == NULL && nsec3paramset == NULL));
 
-       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, &rdsiter);
+       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, 0, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                zoneverify_log_error(vctx, "dns_db_allrdatasets(): %s",
                                     isc_result_totext(result));
@@ -1013,7 +1013,7 @@ is_empty(const vctx_t *vctx, dns_dbnode_t *node, bool *empty) {
        dns_rdatasetiter_t *rdsiter = NULL;
        isc_result_t result;
 
-       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, &rdsiter);
+       result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, 0, &rdsiter);
        if (result != ISC_R_SUCCESS) {
                zoneverify_log_error(vctx, "dns_db_allrdatasets(): %s",
                                     isc_result_totext(result));
index 067c6a237299f3a78c691ae6592346a4616ae8d6..62c5e6d82369ad46c08ae1f6919c9539db94d4e9 100644 (file)
@@ -3031,7 +3031,7 @@ rpz_find_p(ns_client_t *client, dns_name_t *self_name, dns_rdatatype_t qtype,
                dns_rdatasetiter_t *rdsiter;
 
                rdsiter = NULL;
-               result = dns_db_allrdatasets(*dbp, *nodep, *versionp, 0,
+               result = dns_db_allrdatasets(*dbp, *nodep, *versionp, 0, 0,
                                             &rdsiter);
                if (result != ISC_R_SUCCESS) {
                        rpz_log_fail(client, DNS_RPZ_ERROR_LEVEL, p_name,
@@ -7516,7 +7516,7 @@ query_respond_any(query_ctx_t *qctx) {
 
        CALL_HOOK(NS_QUERY_RESPOND_ANY_BEGIN, qctx);
 
-       result = dns_db_allrdatasets(qctx->db, qctx->node, qctx->version, 0,
+       result = dns_db_allrdatasets(qctx->db, qctx->node, qctx->version, 0, 0,
                                     &rdsiter);
        if (result != ISC_R_SUCCESS) {
                CCTRACE(ISC_LOG_ERROR, "query_respond_any: allrdatasets "
index c4caa4d7436c3df91ebd5a3034bc6768e51d8ca3..bbfb1974bcf17afbae8eacd1c339e5bb6646f249 100644 (file)
@@ -599,7 +599,7 @@ foreach_rrset(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
        }
 
        iter = NULL;
-       result = dns_db_allrdatasets(db, node, ver, (isc_stdtime_t)0, &iter);
+       result = dns_db_allrdatasets(db, node, ver, 0, (isc_stdtime_t)0, &iter);
        if (result != ISC_R_SUCCESS) {
                goto cleanup_node;
        }