struct qpznode {
DBNODE_FIELDS;
+ dns_name_t name;
+
qpz_heap_t *heap;
/*
* 'erefs' counts external references held by a caller: for
static dns_dbmethods_t qpdb_zonemethods;
static dns_dbnode_methods_t qpznode_methods;
+static isc_result_t
+nodefullname(dns_dbnode_t *node, dns_name_t *name);
+
#if DNS_DB_NODETRACE
#define qpznode_ref(ptr) qpznode__ref(ptr, __func__, __FILE__, __LINE__)
#define qpznode_unref(ptr) qpznode__unref(ptr, __func__, __FILE__, __LINE__)
* is, we need to remember the node name.
*/
zcname = dns_fixedname_name(&search->zonecut_name);
- dns_name_copy(&node->name, zcname);
+ nodefullname((dns_dbnode_t *)node, zcname);
search->copy_name = true;
}
} else {
result = dns_qp_lookup(&search.qpr, name, nspace, NULL, &search.iter,
&search.chain, (void **)&node, NULL);
if (result != ISC_R_NOTFOUND) {
- dns_name_copy(&node->name, foundname);
+ nodefullname((dns_dbnode_t *)node, foundname);
}
/*
NODE_UNLOCK(nlock, &nlocktype);
dns_qpchain_node(&search.chain, len - 1, NULL,
(void **)&node, NULL);
- dns_name_copy(&node->name, foundname);
+ nodefullname((dns_dbnode_t *)node, foundname);
goto partial_match;
}
}
REQUIRE(qpdbiter->node != NULL);
if (name != NULL) {
- dns_name_copy(&qpdbiter->node->name, name);
+ nodefullname((dns_dbnode_t *)qpdbiter->node, name);
}
qpznode_acquire(node DNS__DB_FLARG_PASS);
return result;
}
- dns_name_copy(&node->name, name);
+ nodefullname((dns_dbnode_t *)node, name);
dns_rdataset_getownercase(rdataset, name);
newheader = (dns_slabheader_t *)region.base;
rdataset->type != dns_rdatatype_nsec3 &&
rdataset->covers != dns_rdatatype_nsec3));
- dns_name_copy(&node->name, nodename);
+ nodefullname((dns_dbnode_t *)node, nodename);
result = dns_rdataslab_fromrdataset(rdataset, node->mctx, ®ion, 0);
if (result != ISC_R_SUCCESS) {
return result;
atomic_init(&newheader->attributes, DNS_SLABHEADERATTR_NONEXISTENT);
newheader->serial = version->serial;
- dns_name_copy(&node->name, nodename);
+ nodefullname((dns_dbnode_t *)node, nodename);
nlock = qpzone_get_lock(node);
NODE_WRLOCK(nlock, &nlocktype);