dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
dns_name_t *zcname = NULL;
dns_typepair_t type;
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
REQUIRE(search != NULL);
REQUIRE(search->zonecut != NULL);
}
static bool
-check_stale_header(dns_rbtnode_t *node, dns_slabheader_t *header,
+check_stale_header(dns_qpdata_t *node, dns_slabheader_t *header,
isc_rwlocktype_t *nlocktypep, isc_rwlock_t *lock,
qpdb_search_t *search, dns_slabheader_t **header_prev) {
if (!ACTIVE(header, search->now)) {
}
static isc_result_t
-check_zonecut(dns_rbtnode_t *node, void *arg DNS__DB_FLARG) {
+check_zonecut(dns_qpdata_t *node, void *arg DNS__DB_FLARG) {
qpdb_search_t *search = arg;
dns_slabheader_t *header = NULL;
dns_slabheader_t *header_prev = NULL, *header_next = NULL;
}
static isc_result_t
-find_deepest_zonecut(qpdb_search_t *search, dns_rbtnode_t *node,
+find_deepest_zonecut(qpdb_search_t *search, dns_qpdata_t *node,
dns_dbnode_t **nodep, dns_name_t *foundname,
dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
dns_fixedname_t fpredecessor, fixed;
dns_name_t *predecessor = NULL, *fname = NULL;
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
dns_qpiter_t iter;
isc_result_t result;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
dns_dbnode_t **nodep, dns_name_t *foundname,
dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
isc_result_t result;
qpdb_search_t search;
bool cname_ok = true;
for (unsigned int i = 0; i < len; i++) {
isc_result_t zcresult;
- dns_rbtnode_t *encloser = NULL;
+ dns_qpdata_t *encloser = NULL;
dns_qpchain_node(&search.chain, i, NULL, (void **)&encloser,
NULL);
dns_name_t *foundname, dns_name_t *dcname,
dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
isc_rwlock_t *lock = NULL;
isc_result_t result;
qpdb_search_t search;
isc_stdtime_t now, dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
dns_slabheader_t *header = NULL, *header_next = NULL;
dns_slabheader_t *found = NULL, *foundsig = NULL;
dns_typepair_t matchtype, sigmatchtype, negtype;
now = isc_stdtime_now();
}
- lock = &qpdb->node_locks[rbtnode->locknum].lock;
+ lock = &qpdb->node_locks[qpnode->locknum].lock;
NODE_RDLOCK(lock, &nlocktype);
matchtype = DNS_TYPEPAIR_VALUE(type, covers);
sigmatchtype = 0;
}
- for (header = rbtnode->data; header != NULL; header = header_next) {
+ for (header = qpnode->data; header != NULL; header = header_next) {
header_next = header->next;
if (!ACTIVE(header, now)) {
if ((header->ttl + STALE_TTL(header, qpdb) <
* We update the node's status only when we
* can get write access.
*
- * We don't check if refcurrent(rbtnode) == 0
+ * We don't check if refcurrent(qpnode) == 0
* and try to free like we do in cache_find(),
- * because refcurrent(rbtnode) must be
+ * because refcurrent(qpnode) must be
* non-zero. This is so because 'node' is an
* argument to the function.
*/
}
}
if (found != NULL) {
- dns__qpdb_bindrdataset(qpdb, rbtnode, found, now, nlocktype,
+ dns__qpdb_bindrdataset(qpdb, qpnode, found, now, nlocktype,
rdataset DNS__DB_FLARG_PASS);
if (!NEGATIVE(found) && foundsig != NULL) {
- dns__qpdb_bindrdataset(qpdb, rbtnode, foundsig, now,
+ dns__qpdb_bindrdataset(qpdb, qpnode, foundsig, now,
nlocktype,
sigrdataset DNS__DB_FLARG_PASS);
}
static void
expiredata(dns_db_t *db, dns_dbnode_t *node, void *data) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
dns_slabheader_t *header = data;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
isc_rwlocktype_t tlocktype = isc_rwlocktype_none;
- NODE_WRLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_WRLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
dns__qpcache_expireheader(header, &tlocktype,
- dns_expire_flush DNS__DB_FLARG_PASS);
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ dns_expire_flush DNS__DB_FILELINE);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
INSIST(tlocktype == isc_rwlocktype_none);
}
uint32_t locknum_start = qpdb->lru_sweep++ % qpdb->node_lock_count;
uint32_t locknum = locknum_start;
/* Size of added data, possible node and possible ENT node. */
- size_t purgesize = rdataset_size(newheader) +
- 2 * dns__rbtnode_getsize(QPDB_HEADERNODE(newheader));
+ size_t purgesize = rdataset_size(newheader) + 2 * sizeof(dns_qpdata_t);
size_t purged = 0;
isc_stdtime_t min_last_used = 0;
size_t max_passes = 8;
}
static isc_result_t
-check_zonecut(dns_rbtnode_t *node, void *arg DNS__DB_FLARG) {
+check_zonecut(dns_qpdata_t *node, void *arg DNS__DB_FLARG) {
qpdb_search_t *search = arg;
dns_slabheader_t *header = NULL, *header_next = NULL;
dns_slabheader_t *dname_header = NULL, *sigdname_header = NULL;
dns_slabheader_t *ns_header = NULL;
dns_slabheader_t *found = NULL;
isc_result_t result = DNS_R_CONTINUE;
- dns_rbtnode_t *onode = NULL;
+ dns_qpdata_t *onode = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
/*
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
dns_name_t *zcname = NULL;
dns_typepair_t type;
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
REQUIRE(search != NULL);
REQUIRE(search->zonecut != NULL);
dns_fixedname_t fnodename;
dns_name_t *nodename = dns_fixedname_initname(&fnodename);
dns_qpdb_t *qpdb = NULL;
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
isc_result_t result = ISC_R_SUCCESS;
dns_slabheader_t *header = NULL;
}
static isc_result_t
-find_wildcard(qpdb_search_t *search, dns_rbtnode_t **nodep,
+find_wildcard(qpdb_search_t *search, dns_qpdata_t **nodep,
const dns_name_t *qname) {
dns_slabheader_t *header = NULL;
isc_result_t result = ISC_R_NOTFOUND;
qpdb = search->qpdb;
for (int i = dns_qpchain_length(&search->chain) - 1; i >= 0; i--) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
isc_rwlock_t *lock = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
NODE_UNLOCK(lock, &nlocktype);
if (wild) {
- dns_rbtnode_t *wnode = NULL;
+ dns_qpdata_t *wnode = NULL;
dns_fixedname_t fwname;
dns_name_t *wname = NULL;
dns_qpiter_t witer;
static isc_result_t
previous_closest_nsec(dns_rdatatype_t type, qpdb_search_t *search,
dns_name_t *name, dns_name_t *origin,
- dns_rbtnode_t **nodep, dns_qpiter_t *nseciter,
+ dns_qpdata_t **nodep, dns_qpiter_t *nseciter,
bool *firstp) {
dns_fixedname_t ftarget;
dns_name_t *target = NULL;
- dns_rbtnode_t *nsecnode = NULL;
+ dns_qpdata_t *nsecnode = NULL;
isc_result_t result;
REQUIRE(nodep != NULL && *nodep == NULL);
dns_name_t *foundname, dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset, dns_qp_t *tree,
bool secure DNS__DB_FLARG) {
- dns_rbtnode_t *node = NULL, *prevnode = NULL;
+ dns_qpdata_t *node = NULL, *prevnode = NULL;
dns_slabheader_t *header = NULL, *header_next = NULL;
dns_qpiter_t nseciter;
bool empty_node;
isc_stdtime_t now ISC_ATTR_UNUSED, dns_dbnode_t **nodep,
dns_name_t *foundname, dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
isc_result_t result;
qpdb_search_t search;
bool cname_ok = true;
for (unsigned int i = 0; i < len; i++) {
isc_result_t zcresult;
- dns_rbtnode_t *encloser = NULL;
+ dns_qpdata_t *encloser = NULL;
dns_qpchain_node(&search.chain, i, NULL, (void **)&encloser,
NULL);
isc_stdtime_t now, dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
dns_slabheader_t *header = NULL, *header_next = NULL;
dns_slabheader_t *found = NULL, *foundsig = NULL;
uint32_t serial;
serial = rbtversion->serial;
now = 0;
- NODE_RDLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_RDLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
matchtype = DNS_TYPEPAIR_VALUE(type, covers);
if (covers == 0) {
sigmatchtype = 0;
}
- for (header = rbtnode->data; header != NULL; header = header_next) {
+ for (header = qpnode->data; header != NULL; header = header_next) {
header_next = header->next;
do {
if (header->serial <= serial && !IGNORE(header)) {
}
}
if (found != NULL) {
- dns__qpdb_bindrdataset(qpdb, rbtnode, found, now,
+ dns__qpdb_bindrdataset(qpdb, qpnode, found, now,
isc_rwlocktype_read,
rdataset DNS__DB_FLARG_PASS);
if (foundsig != NULL) {
- dns__qpdb_bindrdataset(qpdb, rbtnode, foundsig, now,
+ dns__qpdb_bindrdataset(qpdb, qpnode, foundsig, now,
isc_rwlocktype_read,
sigrdataset DNS__DB_FLARG_PASS);
}
}
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
if (close_version) {
dns__qpdb_closeversion(
}
static bool
-delegating_type(dns_qpdb_t *qpdb, dns_rbtnode_t *node, dns_typepair_t type) {
+delegating_type(dns_qpdb_t *qpdb, dns_qpdata_t *node, dns_typepair_t type) {
if (type == dns_rdatatype_dname ||
(type == dns_rdatatype_ns &&
(node != qpdb->origin_node || IS_STUB(qpdb))))
* load a non-NSEC3 node in the main tree and optionally to the auxiliary NSEC
*/
static isc_result_t
-loadnode(dns_qpdb_t *qpdb, const dns_name_t *name, dns_rbtnode_t **nodep,
+loadnode(dns_qpdb_t *qpdb, const dns_name_t *name, dns_qpdata_t **nodep,
bool hasnsec) {
isc_result_t noderesult, nsecresult;
- dns_rbtnode_t *nsecnode = NULL, *node = NULL;
+ dns_qpdata_t *nsecnode = NULL, *node = NULL;
noderesult = dns_qp_getname(qpdb->tree, name, (void **)&node, NULL);
if (noderesult != ISC_R_SUCCESS) {
dns_rdataset_t *rdataset DNS__DB_FLARG) {
qpdb_load_t *loadctx = arg;
dns_qpdb_t *qpdb = (dns_qpdb_t *)loadctx->db;
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
isc_result_t result;
isc_region_t region;
dns_slabheader_t *newheader = NULL;
dns_fixedname_t fixedname_a;
dns_name_t *name_a = NULL;
dns_rdataset_t rdataset_a, sigrdataset_a;
- dns_rbtnode_t *node_a = NULL;
+ dns_qpdata_t *node_a = NULL;
dns_fixedname_t fixedname_aaaa;
dns_name_t *name_aaaa = NULL;
dns_rdataset_t rdataset_aaaa, sigrdataset_aaaa;
- dns_rbtnode_t *node_aaaa = NULL;
+ dns_qpdata_t *node_aaaa = NULL;
dns_glue_t *glue = NULL;
UNUSED(unused);
}
static dns_glue_t *
-newglue(dns_qpdb_t *qpdb, dns_qpdb_version_t *rbtversion, dns_rbtnode_t *node,
+newglue(dns_qpdb_t *qpdb, dns_qpdb_version_t *rbtversion, dns_qpdata_t *node,
dns_rdataset_t *rdataset) {
dns_fixedname_t nodename;
dns_glue_additionaldata_ctx_t ctx = {
dns_message_t *msg) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
dns_qpdb_version_t *rbtversion = version;
- dns_rbtnode_t *node = (dns_rbtnode_t *)rdataset->slab.node;
+ dns_qpdata_t *node = (dns_qpdata_t *)rdataset->slab.node;
dns_slabheader_t *header = dns_slabheader_fromrdataset(rdataset);
REQUIRE(rdataset->type == dns_rdatatype_ns);
dns_name_t foundname;
dns_offsets_t offsets;
unsigned int n;
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
dns_name_init(&foundname, offsets);
l = dns_name_countlabels(&qpdb->common.origin);
i = l + 1;
while (i < n) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
dns_name_getlabelsequence(name, n - i, i, &foundname);
if (dns_name_iswildcard(&foundname)) {
result = dns__qpzone_wildcardmagic(qpdb, &foundname,
dns_qpiter_t iter;
dns_qpiter_t nsec3iter;
dns_qpiter_t *current;
- dns_rbtnode_t *node;
+ dns_qpdata_t *node;
enum { full, nonsec3, nsec3only } nsec3mode;
} qpdb_dbiterator_t;
* the overhead of unlinking all nodes here should be negligible.
*/
for (i = 0; i < qpdb->node_lock_count; i++) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
node = ISC_LIST_HEAD(qpdb->deadnodes[i]);
while (node != NULL) {
INSIST(ISC_LIST_EMPTY(qpdb->deadnodes[i]));
}
isc_mem_cput(qpdb->common.mctx, qpdb->deadnodes,
- qpdb->node_lock_count, sizeof(dns_rbtnodelist_t));
+ qpdb->node_lock_count, sizeof(dns_qpdatalist_t));
}
/*
* Clean up heap objects.
REQUIRE(version->writer);
if (changed != NULL) {
- dns_rbtnode_t *node = (dns_rbtnode_t *)header->node;
+ dns_qpdata_t *node = (dns_qpdata_t *)header->node;
uint_fast32_t refs = isc_refcount_increment(&node->references);
#if DNS_DB_NODETRACE
fprintf(stderr,
}
static void
-rollback_node(dns_rbtnode_t *node, uint32_t serial) {
+rollback_node(dns_qpdata_t *node, uint32_t serial) {
dns_slabheader_t *header = NULL, *dcurrent = NULL;
bool make_dirty = false;
}
static void
-clean_cache_node(dns_qpdb_t *qpdb, dns_rbtnode_t *node) {
+clean_cache_node(dns_qpdb_t *qpdb, dns_qpdata_t *node) {
dns_slabheader_t *current = NULL, *top_prev = NULL, *top_next = NULL;
/*
}
static void
-clean_zone_node(dns_rbtnode_t *node, uint32_t least_serial) {
+clean_zone_node(dns_qpdata_t *node, uint32_t least_serial) {
dns_slabheader_t *current = NULL, *dcurrent = NULL;
dns_slabheader_t *down_next = NULL, *dparent = NULL;
dns_slabheader_t *top_prev = NULL, *top_next = NULL;
* tree_lock(write) must be held.
*/
static void
-delete_node(dns_qpdb_t *qpdb, dns_rbtnode_t *node) {
+delete_node(dns_qpdb_t *qpdb, dns_qpdata_t *node) {
isc_result_t result = ISC_R_UNEXPECTED;
INSIST(!ISC_LINK_LINKED(node, deadlink));
* Caller must be holding the node lock.
*/
void
-dns__qpdb_newref(dns_qpdb_t *qpdb, dns_rbtnode_t *node,
+dns__qpdb_newref(dns_qpdb_t *qpdb, dns_qpdata_t *node,
isc_rwlocktype_t nlocktype DNS__DB_FLARG) {
uint_fast32_t refs;
* The tree lock must be held for the result to be valid.
*/
static bool
-is_leaf(dns_rbtnode_t *node) {
+is_leaf(dns_qpdata_t *node) {
return (node->parent != NULL && node->parent->down == node &&
node->left == NULL && node->right == NULL);
}
static void
-send_to_prune_tree(dns_qpdb_t *qpdb, dns_rbtnode_t *node,
+send_to_prune_tree(dns_qpdb_t *qpdb, dns_qpdata_t *node,
isc_rwlocktype_t nlocktype DNS__DB_FLARG) {
qpdb_prune_t *prune = isc_mem_get(qpdb->common.mctx, sizeof(*prune));
*prune = (qpdb_prune_t){ .node = node };
*/
static void
cleanup_dead_nodes(dns_qpdb_t *qpdb, int bucketnum DNS__DB_FLARG) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
int count = 10; /* XXXJT: should be adjustable */
node = ISC_LIST_HEAD(qpdb->deadnodes[bucketnum]);
* have been added to the list).
*/
static void
-reactivate_node(dns_qpdb_t *qpdb, dns_rbtnode_t *node,
+reactivate_node(dns_qpdb_t *qpdb, dns_qpdata_t *node,
isc_rwlocktype_t tlocktype DNS__DB_FLARG) {
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
isc_rwlock_t *nodelock = &qpdb->node_locks[node->locknum].lock;
* will be immediately freed.
*/
bool
-dns__qpdb_decref(dns_qpdb_t *qpdb, dns_rbtnode_t *node, uint32_t least_serial,
+dns__qpdb_decref(dns_qpdb_t *qpdb, dns_qpdata_t *node, uint32_t least_serial,
isc_rwlocktype_t *nlocktypep, isc_rwlocktype_t *tlocktypep,
bool tryupgrade, bool pruning DNS__DB_FLARG) {
isc_result_t result;
prune_tree(void *arg) {
qpdb_prune_t *prune = (qpdb_prune_t *)arg;
dns_qpdb_t *qpdb = (dns_qpdb_t *)prune->db;
- dns_rbtnode_t *node = prune->node;
- dns_rbtnode_t *parent = NULL;
+ dns_qpdata_t *node = prune->node;
+ dns_qpdata_t *parent = NULL;
unsigned int locknum = node->locknum;
isc_rwlocktype_t tlocktype = isc_rwlocktype_none;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
*/
static void
setnsec3parameters(dns_db_t *db, dns_qpdb_version_t *version) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
dns_rdata_nsec3param_t nsec3param;
dns_rdata_t rdata = DNS_RDATA_INIT;
isc_region_t region;
dns_slabheaderlist_t resigned_list;
qpdb_changed_t *changed = NULL, *next_changed = NULL;
uint32_t serial, least_serial;
- dns_rbtnode_t *rbtnode = NULL;
+ dns_qpdata_t *qpnode = NULL;
dns_slabheader_t *header = NULL;
REQUIRE(VALID_QPDB(qpdb));
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
next_changed = NEXT(changed, link);
- rbtnode = changed->node;
- lock = &qpdb->node_locks[rbtnode->locknum].lock;
+ qpnode = changed->node;
+ lock = &qpdb->node_locks[qpnode->locknum].lock;
NODE_WRLOCK(lock, &nlocktype);
/*
if (qpdb->loop == NULL) {
cleanup_dead_nodes(
qpdb,
- rbtnode->locknum DNS__DB_FLARG_PASS);
+ qpnode->locknum DNS__DB_FLARG_PASS);
}
if (rollback) {
- rollback_node(rbtnode, serial);
+ rollback_node(qpnode, serial);
}
- dns__qpdb_decref(qpdb, rbtnode, least_serial,
- &nlocktype, &tlocktype, true,
+ dns__qpdb_decref(qpdb, qpnode, least_serial, &nlocktype,
+ &tlocktype, true,
false DNS__DB_FILELINE);
NODE_UNLOCK(lock, &nlocktype);
dns__qpdb_findnodeintree(dns_qpdb_t *qpdb, dns_qp_t *tree,
const dns_name_t *name, bool create,
dns_dbnode_t **nodep DNS__DB_FLARG) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
dns_name_t nodename;
isc_result_t result;
isc_rwlocktype_t tlocktype = isc_rwlocktype_none;
}
void
-dns__qpdb_bindrdataset(dns_qpdb_t *qpdb, dns_rbtnode_t *node,
+dns__qpdb_bindrdataset(dns_qpdb_t *qpdb, dns_qpdata_t *node,
dns_slabheader_t *header, isc_stdtime_t now,
isc_rwlocktype_t locktype,
dns_rdataset_t *rdataset DNS__DB_FLARG) {
REQUIRE(VALID_QPDB((dns_qpdb_t *)db));
REQUIRE(targetp != NULL && *targetp == NULL);
- dns_rbtnode_t *node = (dns_rbtnode_t *)source;
+ dns_qpdata_t *node = (dns_qpdata_t *)source;
uint_fast32_t refs = isc_refcount_increment(&node->references);
#if DNS_DB_NODETRACE
void
dns__qpdb_detachnode(dns_db_t *db, dns_dbnode_t **targetp DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
bool want_free = false;
bool inactive = false;
db_nodelock_t *nodelock = NULL;
REQUIRE(VALID_QPDB(qpdb));
REQUIRE(targetp != NULL && *targetp != NULL);
- node = (dns_rbtnode_t *)(*targetp);
+ node = (dns_qpdata_t *)(*targetp);
nodelock = &qpdb->node_locks[node->locknum];
NODE_RDLOCK(&nodelock->lock, &nlocktype);
isc_stdtime_t now,
dns_rdatasetiter_t **iteratorp DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
dns_qpdb_version_t *rbtversion = version;
qpdb_rdatasetiter_t *iterator = NULL;
uint_fast32_t refs;
iterator->common.options = options;
iterator->common.now = now;
- refs = isc_refcount_increment(&rbtnode->references);
+ refs = isc_refcount_increment(&qpnode->references);
#if DNS_DB_NODETRACE
fprintf(stderr, "incr:node:%s:%s:%u:%p->references = %" PRIuFAST32 "\n",
func, file, line, node, refs + 1);
}
static bool
-cname_and_other_data(dns_rbtnode_t *node, uint32_t serial) {
+cname_and_other_data(dns_qpdata_t *node, uint32_t serial) {
dns_slabheader_t *header = NULL, *header_next = NULL;
bool cname = false, other_data = false;
dns_rdatatype_t rdtype;
}
isc_result_t
-dns__qpdb_add(dns_qpdb_t *qpdb, dns_rbtnode_t *rbtnode,
+dns__qpdb_add(dns_qpdb_t *qpdb, dns_qpdata_t *qpnode,
const dns_name_t *nodename, dns_qpdb_version_t *rbtversion,
dns_slabheader_t *newheader, unsigned int options, bool loading,
dns_rdataset_t *addedrdataset, isc_stdtime_t now DNS__DB_FLARG) {
* only rdataset that can be found at this
* node is the negative cache entry.
*/
- for (topheader = rbtnode->data;
+ for (topheader = qpnode->data;
topheader != NULL;
topheader = topheader->next)
{
* Otherwise look for any RRSIGs of the given
* type so they can be marked ancient later.
*/
- for (topheader = rbtnode->data; topheader != NULL;
+ for (topheader = qpnode->data; topheader != NULL;
topheader = topheader->next)
{
if (topheader->type == sigtype) {
* check for an extant non-ancient NODATA ncache
* entry which covers the same type as the RRSIG.
*/
- for (topheader = rbtnode->data; topheader != NULL;
+ for (topheader = qpnode->data; topheader != NULL;
topheader = topheader->next)
{
if ((topheader->type == RDATATYPE_NCACHEANY) ||
dns_slabheader_destroy(&newheader);
if (addedrdataset != NULL) {
dns__qpdb_bindrdataset(
- qpdb, rbtnode,
- topheader, now,
+ qpdb, qpnode, topheader,
+ now,
isc_rwlocktype_write,
addedrdataset
DNS__DB_FLARG_PASS);
}
}
- for (topheader = rbtnode->data; topheader != NULL;
+ for (topheader = qpnode->data; topheader != NULL;
topheader = topheader->next)
{
if (prio_type(topheader->type)) {
dns_slabheader_destroy(&newheader);
if (addedrdataset != NULL) {
dns__qpdb_bindrdataset(
- qpdb, rbtnode, header, now,
+ qpdb, qpnode, header, now,
isc_rwlocktype_write,
addedrdataset DNS__DB_FLARG_PASS);
}
newheader = (dns_slabheader_t *)merged;
dns_slabheader_reset(newheader,
(dns_db_t *)qpdb,
- (dns_dbnode_t *)rbtnode);
+ (dns_dbnode_t *)qpnode);
dns_slabheader_copycase(newheader, header);
if (loading && RESIGN(newheader) &&
RESIGN(header) &&
dns_slabheader_destroy(&newheader);
if (addedrdataset != NULL) {
dns__qpdb_bindrdataset(
- qpdb, rbtnode, header, now,
+ qpdb, qpnode, header, now,
isc_rwlocktype_write,
addedrdataset DNS__DB_FLARG_PASS);
}
dns_slabheader_destroy(&newheader);
if (addedrdataset != NULL) {
dns__qpdb_bindrdataset(
- qpdb, rbtnode, header, now,
+ qpdb, qpnode, header, now,
isc_rwlocktype_write,
addedrdataset DNS__DB_FLARG_PASS);
}
if (topheader_prev != NULL) {
topheader_prev->next = newheader;
} else {
- rbtnode->data = newheader;
+ qpnode->data = newheader;
}
newheader->next = topheader->next;
if (rbtversion != NULL && !header_nx) {
if (topheader_prev != NULL) {
topheader_prev->next = newheader;
} else {
- rbtnode->data = newheader;
+ qpnode->data = newheader;
}
newheader->next = topheader->next;
newheader->down = topheader;
topheader->next = newheader;
- rbtnode->dirty = 1;
+ qpnode->dirty = 1;
if (changed != NULL) {
changed->dirty = true;
}
if (topheader_prev != NULL) {
topheader_prev->next = newheader;
} else {
- rbtnode->data = newheader;
+ qpnode->data = newheader;
}
newheader->next = topheader->next;
newheader->down = topheader;
topheader->next = newheader;
- rbtnode->dirty = 1;
+ qpnode->dirty = 1;
if (changed != NULL) {
changed->dirty = true;
}
if (prio_type(newheader->type)) {
/* This is a priority type, prepend it */
- newheader->next = rbtnode->data;
- rbtnode->data = newheader;
+ newheader->next = qpnode->data;
+ qpnode->data = newheader;
} else if (prioheader != NULL) {
/* Append after the priority headers */
newheader->next = prioheader->next;
prioheader->next = newheader;
} else {
/* There were no priority headers */
- newheader->next = rbtnode->data;
- rbtnode->data = newheader;
+ newheader->next = qpnode->data;
+ qpnode->data = newheader;
}
}
}
* Check if the node now contains CNAME and other data.
*/
if (rbtversion != NULL &&
- cname_and_other_data(rbtnode, rbtversion->serial))
+ cname_and_other_data(qpnode, rbtversion->serial))
{
return (DNS_R_CNAMEANDOTHER);
}
if (addedrdataset != NULL) {
- dns__qpdb_bindrdataset(qpdb, rbtnode, newheader, now,
+ dns__qpdb_bindrdataset(qpdb, qpnode, newheader, now,
isc_rwlocktype_write,
addedrdataset DNS__DB_FLARG_PASS);
}
}
static bool
-delegating_type(dns_qpdb_t *qpdb, dns_rbtnode_t *node, dns_typepair_t type) {
+delegating_type(dns_qpdb_t *qpdb, dns_qpdata_t *node, dns_typepair_t type) {
if (IS_CACHE(qpdb)) {
if (type == dns_rdatatype_dname) {
return (true);
dns_rdataset_t *rdataset, unsigned int options,
dns_rdataset_t *addedrdataset DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
dns_qpdb_version_t *rbtversion = version;
isc_region_t region;
dns_slabheader_t *newheader = NULL;
return (DNS_R_NOTZONETOP);
}
TREE_RDLOCK(&qpdb->tree_lock, &tlocktype);
- REQUIRE(((rbtnode->nsec == DNS_DB_NSEC_NSEC3 &&
+ REQUIRE(((qpnode->nsec == DNS_DB_NSEC_NSEC3 &&
(rdataset->type == dns_rdatatype_nsec3 ||
rdataset->covers == dns_rdatatype_nsec3)) ||
- (rbtnode->nsec != DNS_DB_NSEC_NSEC3 &&
+ (qpnode->nsec != DNS_DB_NSEC_NSEC3 &&
rdataset->type != dns_rdatatype_nsec3 &&
rdataset->covers != dns_rdatatype_nsec3)));
TREE_UNLOCK(&qpdb->tree_lock, &tlocktype);
.type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers),
.trust = rdataset->trust,
.last_used = now,
- .node = rbtnode,
+ .node = qpnode,
};
dns_slabheader_reset(newheader, db, node);
* just DNAME for the cache), then we need to set the callback bit
* on the node.
*/
- if (delegating_type(qpdb, rbtnode, rdataset->type)) {
+ if (delegating_type(qpdb, qpnode, rdataset->type)) {
delegating = true;
} else {
delegating = false;
* Add to the auxiliary NSEC tree if we're adding an NSEC record.
*/
TREE_RDLOCK(&qpdb->tree_lock, &tlocktype);
- if (rbtnode->nsec != DNS_DB_NSEC_HAS_NSEC &&
+ if (qpnode->nsec != DNS_DB_NSEC_HAS_NSEC &&
rdataset->type == dns_rdatatype_nsec)
{
newnsec = true;
&tlocktype DNS__DB_FLARG_PASS);
}
- NODE_WRLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_WRLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
if (qpdb->rrsetstats != NULL) {
DNS_SLABHEADER_SETATTR(newheader, DNS_SLABHEADERATTR_STATCOUNT);
if (IS_CACHE(qpdb)) {
if (tlocktype == isc_rwlocktype_write) {
cleanup_dead_nodes(qpdb,
- rbtnode->locknum DNS__DB_FLARG_PASS);
+ qpnode->locknum DNS__DB_FLARG_PASS);
}
- expire_ttl_headers(qpdb, rbtnode->locknum, &tlocktype, now,
+ expire_ttl_headers(qpdb, qpnode->locknum, &tlocktype, now,
cache_is_overmem DNS__DB_FLARG_PASS);
/*
result = ISC_R_SUCCESS;
if (newnsec) {
- dns_rbtnode_t *nsecnode = NULL;
+ dns_qpdata_t *nsecnode = NULL;
result = dns_qp_getname(qpdb->nsec, name, (void **)&nsecnode,
NULL);
result = dns_qp_insert(qpdb->nsec, nsecnode, 0);
INSIST(result == ISC_R_SUCCESS);
}
- rbtnode->nsec = DNS_DB_NSEC_HAS_NSEC;
+ qpnode->nsec = DNS_DB_NSEC_HAS_NSEC;
}
if (result == ISC_R_SUCCESS) {
- result = dns__qpdb_add(qpdb, rbtnode, name, rbtversion,
+ result = dns__qpdb_add(qpdb, qpnode, name, rbtversion,
newheader, options, false, addedrdataset,
now DNS__DB_FLARG_PASS);
}
if (result == ISC_R_SUCCESS && delegating) {
- rbtnode->find_callback = 1;
+ qpnode->find_callback = 1;
}
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
if (tlocktype != isc_rwlocktype_none) {
TREE_UNLOCK(&qpdb->tree_lock, &tlocktype);
unsigned int options,
dns_rdataset_t *newrdataset DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
dns_qpdb_version_t *rbtversion = version;
dns_fixedname_t fname;
dns_name_t *nodename = dns_fixedname_initname(&fname);
if (!IS_CACHE(qpdb)) {
TREE_RDLOCK(&qpdb->tree_lock, &tlocktype);
- REQUIRE(((rbtnode->nsec == DNS_DB_NSEC_NSEC3 &&
+ REQUIRE(((qpnode->nsec == DNS_DB_NSEC_NSEC3 &&
(rdataset->type == dns_rdatatype_nsec3 ||
rdataset->covers == dns_rdatatype_nsec3)) ||
- (rbtnode->nsec != DNS_DB_NSEC_NSEC3 &&
+ (qpnode->nsec != DNS_DB_NSEC_NSEC3 &&
rdataset->type != dns_rdatatype_nsec3 &&
rdataset->covers != dns_rdatatype_nsec3)));
TREE_UNLOCK(&qpdb->tree_lock, &tlocktype);
atomic_init(&newheader->count,
atomic_fetch_add_relaxed(&init_count, 1));
newheader->last_used = 0;
- newheader->node = rbtnode;
+ newheader->node = qpnode;
newheader->db = (dns_db_t *)qpdb;
if ((rdataset->attributes & DNS_RDATASETATTR_RESIGN) != 0) {
DNS_SLABHEADER_SETATTR(newheader, DNS_SLABHEADERATTR_RESIGN);
newheader->resign_lsb = 0;
}
- NODE_WRLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_WRLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
changed = add_changed(newheader, rbtversion DNS__DB_FLARG_PASS);
if (changed == NULL) {
dns_slabheader_destroy(&newheader);
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock,
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock,
&nlocktype);
return (ISC_R_NOMEMORY);
}
- for (topheader = rbtnode->data; topheader != NULL;
+ for (topheader = qpnode->data; topheader != NULL;
topheader = topheader->next)
{
if (topheader->type == newheader->type) {
newheader, DNS_SLABHEADERATTR_RESIGN);
newheader->resign = header->resign;
newheader->resign_lsb = header->resign_lsb;
- dns__qpzone_resigninsert(qpdb, rbtnode->locknum,
+ dns__qpzone_resigninsert(qpdb, qpnode->locknum,
newheader);
}
/*
*/
dns_slabheader_destroy(&newheader);
newheader = dns_slabheader_new((dns_db_t *)qpdb,
- (dns_dbnode_t *)rbtnode);
+ (dns_dbnode_t *)qpnode);
dns__qpdb_setttl(newheader, 0);
newheader->type = topheader->type;
atomic_init(&newheader->attributes,
if (topheader_prev != NULL) {
topheader_prev->next = newheader;
} else {
- rbtnode->data = newheader;
+ qpnode->data = newheader;
}
newheader->next = topheader->next;
newheader->down = topheader;
topheader->next = newheader;
- rbtnode->dirty = 1;
+ qpnode->dirty = 1;
changed->dirty = true;
dns__qpzone_resigndelete(qpdb, rbtversion,
header DNS__DB_FLARG_PASS);
}
if (result == ISC_R_SUCCESS && newrdataset != NULL) {
- dns__qpdb_bindrdataset(qpdb, rbtnode, newheader, 0,
+ dns__qpdb_bindrdataset(qpdb, qpnode, newheader, 0,
isc_rwlocktype_write,
newrdataset DNS__DB_FLARG_PASS);
}
if (result == DNS_R_NXRRSET && newrdataset != NULL &&
(options & DNS_DBSUB_WANTOLD) != 0)
{
- dns__qpdb_bindrdataset(qpdb, rbtnode, header, 0,
+ dns__qpdb_bindrdataset(qpdb, qpnode, header, 0,
isc_rwlocktype_write,
newrdataset DNS__DB_FLARG_PASS);
}
unlock:
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
/*
* Update the zone's secure status. If version is non-NULL
dns_dbversion_t *version, dns_rdatatype_t type,
dns_rdatatype_t covers DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
dns_qpdb_version_t *rbtversion = version;
dns_fixedname_t fname;
dns_name_t *nodename = dns_fixedname_initname(&fname);
dns__qpdb_nodefullname(db, node, nodename);
- NODE_WRLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
- result = dns__qpdb_add(qpdb, rbtnode, nodename, rbtversion, newheader,
+ NODE_WRLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
+ result = dns__qpdb_add(qpdb, qpnode, nodename, rbtversion, newheader,
DNS_DBADD_FORCE, false, NULL,
0 DNS__DB_FLARG_PASS);
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
/*
* Update the zone's secure status. If version is non-NULL
isc_result_t
dns__qpdb_getoriginnode(dns_db_t *db, dns_dbnode_t **nodep DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *onode = NULL;
+ dns_qpdata_t *onode = NULL;
isc_result_t result = ISC_R_SUCCESS;
REQUIRE(VALID_QPDB(qpdb));
REQUIRE(nodep != NULL && *nodep == NULL);
/* Note that the access to origin_node doesn't require a DB lock */
- onode = (dns_rbtnode_t *)qpdb->origin_node;
+ onode = (dns_qpdata_t *)qpdb->origin_node;
if (onode != NULL) {
dns__qpdb_newref(qpdb, onode,
isc_rwlocktype_none DNS__DB_FLARG_PASS);
void
dns__qpdb_locknode(dns_db_t *db, dns_dbnode_t *node, isc_rwlocktype_t type) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
- RWLOCK(&qpdb->node_locks[rbtnode->locknum].lock, type);
+ RWLOCK(&qpdb->node_locks[qpnode->locknum].lock, type);
}
void
dns__qpdb_unlocknode(dns_db_t *db, dns_dbnode_t *node, isc_rwlocktype_t type) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
- RWUNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, type);
+ RWUNLOCK(&qpdb->node_locks[qpnode->locknum].lock, type);
}
isc_result_t
dns__qpdb_nodefullname(dns_db_t *db, dns_dbnode_t *node, dns_name_t *name) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)db;
- dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
+ dns_qpdata_t *qpnode = (dns_qpdata_t *)node;
isc_rwlocktype_t tlocktype = isc_rwlocktype_none;
REQUIRE(VALID_QPDB(qpdb));
REQUIRE(name != NULL);
TREE_RDLOCK(&qpdb->tree_lock, &tlocktype);
- dns_name_copy(rbtnode->name, name);
+ dns_name_copy(qpnode->name, name);
TREE_UNLOCK(&qpdb->tree_lock, &tlocktype);
return (ISC_R_SUCCESS);
* Create deadnode lists.
*/
qpdb->deadnodes = isc_mem_get(mctx, qpdb->node_lock_count *
- sizeof(dns_rbtnodelist_t));
+ sizeof(dns_qpdatalist_t));
for (i = 0; i < (int)qpdb->node_lock_count; i++) {
ISC_LIST_INIT(qpdb->deadnodes[i]);
}
rdatasetiter_first(dns_rdatasetiter_t *iterator DNS__DB_FLARG) {
qpdb_rdatasetiter_t *rbtiterator = (qpdb_rdatasetiter_t *)iterator;
dns_qpdb_t *qpdb = (dns_qpdb_t *)(rbtiterator->common.db);
- dns_rbtnode_t *rbtnode = rbtiterator->common.node;
+ dns_qpdata_t *qpnode = rbtiterator->common.node;
dns_qpdb_version_t *rbtversion = rbtiterator->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
uint32_t serial = IS_CACHE(qpdb) ? 1 : rbtversion->serial;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
- NODE_RDLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_RDLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
- for (header = rbtnode->data; header != NULL; header = top_next) {
+ for (header = qpnode->data; header != NULL; header = top_next) {
top_next = header->next;
do {
if (EXPIREDOK(rbtiterator)) {
}
}
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
rbtiterator->current = header;
rdatasetiter_next(dns_rdatasetiter_t *iterator DNS__DB_FLARG) {
qpdb_rdatasetiter_t *rbtiterator = (qpdb_rdatasetiter_t *)iterator;
dns_qpdb_t *qpdb = (dns_qpdb_t *)(rbtiterator->common.db);
- dns_rbtnode_t *rbtnode = rbtiterator->common.node;
+ dns_qpdata_t *qpnode = rbtiterator->common.node;
dns_qpdb_version_t *rbtversion = rbtiterator->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
uint32_t serial = IS_CACHE(qpdb) ? 1 : rbtversion->serial;
return (ISC_R_NOMORE);
}
- NODE_RDLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_RDLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
type = header->type;
rdtype = DNS_TYPEPAIR_TYPE(header->type);
}
}
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
rbtiterator->current = header;
dns_rdataset_t *rdataset DNS__DB_FLARG) {
qpdb_rdatasetiter_t *rbtiterator = (qpdb_rdatasetiter_t *)iterator;
dns_qpdb_t *qpdb = (dns_qpdb_t *)(rbtiterator->common.db);
- dns_rbtnode_t *rbtnode = rbtiterator->common.node;
+ dns_qpdata_t *qpnode = rbtiterator->common.node;
dns_slabheader_t *header = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
header = rbtiterator->current;
REQUIRE(header != NULL);
- NODE_RDLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_RDLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
- dns__qpdb_bindrdataset(qpdb, rbtnode, header, rbtiterator->common.now,
+ dns__qpdb_bindrdataset(qpdb, qpnode, header, rbtiterator->common.now,
isc_rwlocktype_read,
rdataset DNS__DB_FLARG_PASS);
- NODE_UNLOCK(&qpdb->node_locks[rbtnode->locknum].lock, &nlocktype);
+ NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);
}
/*
static void
reference_iter_node(qpdb_dbiterator_t *qpdbiter DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)qpdbiter->common.db;
- dns_rbtnode_t *node = qpdbiter->node;
+ dns_qpdata_t *node = qpdbiter->node;
if (node == NULL) {
return;
static void
dereference_iter_node(qpdb_dbiterator_t *qpdbiter DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)qpdbiter->common.db;
- dns_rbtnode_t *node = qpdbiter->node;
+ dns_qpdata_t *node = qpdbiter->node;
isc_rwlock_t *lock = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
isc_rwlocktype_t tlocktype = qpdbiter->tree_locked;
qpdbiter->current, NULL,
(void **)&qpdbiter->node, NULL);
if (result == DNS_R_PARTIALMATCH) {
- dns_rbtnode_t *node = NULL;
+ dns_qpdata_t *node = NULL;
tresult = dns_qp_lookup(qpdb->nsec3, name, NULL,
&qpdbiter->nsec3iter, NULL,
(void **)&node, NULL);
dns_name_t *name DNS__DB_FLARG) {
dns_qpdb_t *qpdb = (dns_qpdb_t *)iterator->db;
qpdb_dbiterator_t *qpdbiter = (qpdb_dbiterator_t *)iterator;
- dns_rbtnode_t *node = qpdbiter->node;
+ dns_qpdata_t *node = qpdbiter->node;
isc_result_t result = ISC_R_SUCCESS;
REQUIRE(qpdbiter->result == ISC_R_SUCCESS);