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);
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) {
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) {
/*
* 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;
}
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) {
/*
* 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))
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))
{
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;
{
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;
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
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);
}
continue;
}
- 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,
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;
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'.
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
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,
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'.
*
* \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
dns_dbnode_t *node;
dns_dbversion_t *version;
isc_stdtime_t now;
+ unsigned int options;
};
void
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;
}
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);
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;
}
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);
}
}
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);
}
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;
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;
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);
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;
}
RUNTIME_CHECK(result == ISC_R_SUCCESS);
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,
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);
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);
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);
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;
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;
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;
}
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;
}
}
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;
}
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;
}
/*
* 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);
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;
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;
/*
* 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;
/*
* 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;
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",
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;
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;
}
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));
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));
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));
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));
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,
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 "
}
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;
}
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);