forwarders = isc_mem_get(mctx, sizeof(*forwarders));
*forwarders = (dns_forwarders_t){
.fwdpolicy = fwdpolicy,
+ .name = DNS_NAME_INITEMPTY,
.fwdrs = ISC_LIST_INITIALIZER,
};
isc_mem_attach(mctx, &forwarders->mctx);
isc_refcount_init(&forwarders->references, 1);
- forwarders->name = dns_fixedname_initname(&forwarders->fn);
- dns_name_copy(name, forwarders->name);
+ dns_name_dupwithoffsets(name, mctx, &forwarders->name);
return (forwarders);
}
}
isc_mem_put(forwarders->mctx, fwd, sizeof(*fwd));
}
+ dns_name_free(&forwarders->name, forwarders->mctx);
isc_mem_putanddetach(&forwarders->mctx, forwarders,
sizeof(*forwarders));
}
qp_makekey(dns_qpkey_t key, void *uctx ISC_ATTR_UNUSED, void *pval,
uint32_t ival ISC_ATTR_UNUSED) {
dns_forwarders_t *fwd = pval;
- return (dns_qpkey_fromname(key, fwd->name));
+ return (dns_qpkey_fromname(key, &fwd->name));
}
static void
dns_fwdpolicy_t fwdpolicy;
isc_mem_t *mctx;
isc_refcount_t references;
- dns_fixedname_t fn;
- dns_name_t *name;
+ dns_name_t name;
};
void
isc_mem_t *mctx;
isc_refcount_t references;
isc_rwlock_t rwlock;
- dns_fixedname_t fn;
- dns_name_t *name;
+ dns_name_t name;
dns_rdatalist_t *dslist;
dns_rdataset_t dsset;
bool managed;
knode->dslist = NULL;
}
+ dns_name_free(&knode->name, knode->mctx);
isc_mem_putanddetach(&knode->mctx, knode, sizeof(dns_keynode_t));
}
/*
* Replace knode with a new instance without the DS.
*/
- newnode = new_keynode(knode->name, NULL, keytable, knode->managed,
+ newnode = new_keynode(&knode->name, NULL, keytable, knode->managed,
knode->initial);
for (rdata = ISC_LIST_HEAD(knode->dslist->rdata); rdata != NULL;
rdata = ISC_LIST_NEXT(rdata, link))
}
}
- result = dns_qp_deletename(qp, knode->name, &pval, NULL);
+ result = dns_qp_deletename(qp, &knode->name, &pval, NULL);
INSIST(result == ISC_R_SUCCESS);
INSIST(pval == knode);
REQUIRE(!initial || managed);
knode = isc_mem_get(keytable->mctx, sizeof(dns_keynode_t));
- *knode = (dns_keynode_t){ .magic = KEYNODE_MAGIC };
+ *knode = (dns_keynode_t){ .name = DNS_NAME_INITEMPTY,
+ .magic = KEYNODE_MAGIC };
dns_rdataset_init(&knode->dsset);
isc_refcount_init(&knode->references, 1);
isc_rwlock_init(&knode->rwlock);
- knode->name = dns_fixedname_initname(&knode->fn);
- dns_name_copy(name, knode->name);
+ dns_name_dupwithoffsets(name, keytable->mctx, &knode->name);
/*
* If a DS was supplied, initialize an rdatalist.
keynode = pval;
if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
- dns_name_copy(keynode->name, foundname);
+ dns_name_copy(&keynode->name, foundname);
result = ISC_R_SUCCESS;
}
if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
keynode = pval;
if (foundname != NULL) {
- dns_name_copy(keynode->name, foundname);
+ dns_name_copy(&keynode->name, foundname);
}
*wantdnssecp = true;
result = ISC_R_SUCCESS;
return (ISC_R_SUCCESS);
}
- dns_name_format(keynode->name, namebuf, sizeof(namebuf));
+ dns_name_format(&keynode->name, namebuf, sizeof(namebuf));
for (result = dns_rdataset_first(&dsset); result == ISC_R_SUCCESS;
result = dns_rdataset_next(&dsset))
while (dns_qpiter_next(&iter, NULL, &pval, NULL) == ISC_R_SUCCESS) {
dns_keynode_t *knode = pval;
- (*func)(keytable, knode, knode->name, arg);
+ (*func)(keytable, knode, &knode->name, arg);
}
dns_qpread_destroy(keytable->table, &qpr);
qp_makekey(dns_qpkey_t key, void *uctx ISC_ATTR_UNUSED, void *pval,
uint32_t ival ISC_ATTR_UNUSED) {
dns_keynode_t *keynode = pval;
- return (dns_qpkey_fromname(key, keynode->name));
+ return (dns_qpkey_fromname(key, &keynode->name));
}
static void
struct dns_ntnode {
isc_mem_t *mctx;
isc_refcount_t references;
- dns_fixedname_t fn;
- dns_name_t *name;
+ dns_name_t name;
bool set;
uint8_t *bits;
};
isc_mem_cput(node->mctx, node->bits, node->bits[0],
sizeof(char));
}
+ dns_name_free(&node->name, node->mctx);
isc_mem_putanddetach(&node->mctx, node, sizeof(dns_ntnode_t));
}
static void
destroy_nametree(dns_nametree_t *nametree) {
- /* dns_qpread_t qpr; */
- /* dns_qpiter_t iter; */
- /* void *pval = NULL; */
-
nametree->magic = 0;
- /* dns_qpmulti_query(nametree->table, &qpr); */
- /* dns_qpiter_init(&qpr, &iter); */
- /* while (dns_qpiter_next(&iter, &pval, NULL) == ISC_R_SUCCESS) { */
- /* dns_ntnode_t *n = pval; */
- /* dns_ntnode_detach(&n); */
- /* } */
- /* dns_qpread_destroy(nametree->table, &qpr); */
-
dns_qpmulti_destroy(&nametree->table);
isc_mem_putanddetach(&nametree->mctx, nametree, sizeof(*nametree));
static dns_ntnode_t *
newnode(isc_mem_t *mctx, const dns_name_t *name) {
dns_ntnode_t *node = isc_mem_get(mctx, sizeof(*node));
- *node = (dns_ntnode_t){ 0 };
+ *node = (dns_ntnode_t){
+ .name = DNS_NAME_INITEMPTY,
+ };
isc_mem_attach(mctx, &node->mctx);
isc_refcount_init(&node->references, 1);
- node->name = dns_fixedname_initname(&node->fn);
- dns_name_copy(name, node->name);
+ dns_name_dupwithoffsets(name, mctx, &node->name);
return (node);
}
qp_makekey(dns_qpkey_t key, void *uctx ISC_ATTR_UNUSED, void *pval,
uint32_t ival ISC_ATTR_UNUSED) {
dns_ntnode_t *ntnode = pval;
- return (dns_qpkey_fromname(key, ntnode->name));
+ return (dns_qpkey_fromname(key, &ntnode->name));
}
static void
dns_fetch_t *fetch;
dns_rdataset_t rdataset;
dns_rdataset_t sigrdataset;
- dns_fixedname_t fn;
- dns_name_t *name;
+ dns_name_t name;
isc_stdtime_t expiry;
bool shuttingdown;
};
dns_resolver_destroyfetch(&nta->fetch);
}
isc_loop_detach(&nta->loop);
+ dns_name_free(&nta->name, nta->mctx);
isc_mem_putanddetach(&nta->mctx, nta, sizeof(*nta));
}
dns__nta_ref(nta); /* for dns_resolver_createfetch */
result = dns_resolver_createfetch(
- resolver, nta->name, dns_rdatatype_nsec, NULL, NULL, NULL, NULL,
- 0, DNS_FETCHOPT_NONTA, 0, NULL, nta->loop, fetch_done, nta,
- &nta->rdataset, &nta->sigrdataset, &nta->fetch);
+ resolver, &nta->name, dns_rdatatype_nsec, NULL, NULL, NULL,
+ NULL, 0, DNS_FETCHOPT_NONTA, 0, NULL, nta->loop, fetch_done,
+ nta, &nta->rdataset, &nta->sigrdataset, &nta->fetch);
if (result != ISC_R_SUCCESS) {
dns__nta_detach(&nta); /* for dns_resolver_createfetch() */
}
nta = isc_mem_get(ntatable->mctx, sizeof(dns__nta_t));
*nta = (dns__nta_t){
.ntatable = ntatable,
+ .name = DNS_NAME_INITEMPTY,
.magic = NTA_MAGIC,
};
isc_mem_attach(ntatable->mctx, &nta->mctx);
isc_refcount_init(&nta->references, 1);
- nta->name = dns_fixedname_initname(&nta->fn);
- dns_name_copy(name, nta->name);
+ dns_name_dupwithoffsets(name, nta->mctx, &nta->name);
*target = nta;
}
result = dns_qp_insert(qp, nta, 0);
switch (result) {
case ISC_R_EXISTS:
- result = dns_qp_getname(qp, nta->name, &pval, NULL);
+ result = dns_qp_getname(qp, &nta->name, &pval, NULL);
if (result == ISC_R_SUCCESS) {
/*
* an NTA already existed: throw away the
RWLOCK(&ntatable->rwlock, isc_rwlocktype_write);
dns_qpmulti_write(ntatable->table, &qp);
- result = dns_qp_getname(qp, nta->name, &pval, NULL);
+ result = dns_qp_getname(qp, &nta->name, &pval, NULL);
if (result == ISC_R_SUCCESS &&
((dns__nta_t *)pval)->expiry == nta->expiry && !nta->shuttingdown)
{
char nb[DNS_NAME_FORMATSIZE];
- dns_name_format(nta->name, nb, sizeof(nb));
+ dns_name_format(&nta->name, nb, sizeof(nb));
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DNSSEC,
DNS_LOGMODULE_NTA, ISC_LOG_INFO,
"deleting expired NTA at %s", nb);
- dns_qp_deletename(qp, nta->name, NULL, NULL);
+ dns_qp_deletename(qp, &nta->name, NULL, NULL);
dns__nta_shutdown(nta);
dns__nta_unref(nta);
}
* Found a NTA that's an ancestor of 'name'; we
* now have to make sure 'anchor' isn't below it.
*/
- if (!dns_name_issubdomain(nta->name, anchor)) {
+ if (!dns_name_issubdomain(&nta->name, anchor)) {
goto done;
}
/* Ancestor match */
sizeof("expired: \n")];
isc_time_t t;
- dns_name_format(n->name, nbuf, sizeof(nbuf));
+ dns_name_format(&n->name, nbuf, sizeof(nbuf));
if (n->expiry != 0xffffffffU) {
/* Normal NTA entries */
}
isc_buffer_init(&b, nbuf, sizeof(nbuf));
- result = dns_name_totext(n->name, 0, &b);
+ result = dns_name_totext(&n->name, 0, &b);
if (result != ISC_R_SUCCESS) {
continue;
}
if (isc_log_wouldlog(dns_lctx, ISC_LOG_DEBUG(3))) {
char nb[DNS_NAME_FORMATSIZE];
- dns_name_format(nta->name, nb, sizeof(nb));
+ dns_name_format(&nta->name, nb, sizeof(nb));
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DNSSEC,
DNS_LOGMODULE_NTA, ISC_LOG_DEBUG(3),
"shutting down NTA %p at %s", nta, nb);
qp_makekey(dns_qpkey_t key, void *uctx ISC_ATTR_UNUSED, void *pval,
uint32_t ival ISC_ATTR_UNUSED) {
dns__nta_t *nta = pval;
- return (dns_qpkey_fromname(key, nta->name));
+ return (dns_qpkey_fromname(key, &nta->name));
}
static void
if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
fwd = ISC_LIST_HEAD(forwarders->fwdrs);
fctx->fwdpolicy = forwarders->fwdpolicy;
- dns_name_copy(forwarders->name, fctx->fwdname);
+ dns_name_copy(&forwarders->name, fctx->fwdname);
if (fctx->fwdpolicy == dns_fwdpolicy_only &&
- isstrictsubdomain(forwarders->name, fctx->domain))
+ isstrictsubdomain(&forwarders->name, fctx->domain))
{
fcount_decr(fctx);
- dns_name_copy(forwarders->name, fctx->domain);
+ dns_name_copy(&forwarders->name, fctx->domain);
result = fcount_incr(fctx, true);
if (result != ISC_R_SUCCESS) {
dns_forwarders_detach(&forwarders);
&forwarders);
if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
fctx->fwdpolicy = forwarders->fwdpolicy;
- dns_name_copy(forwarders->name, fctx->fwdname);
+ dns_name_copy(&forwarders->name, fctx->fwdname);
dns_forwarders_detach(&forwarders);
}
* See if the forwarder declaration is better.
*/
if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) {
- bool better = !dns_name_equal(forwarders->name,
+ bool better = !dns_name_equal(&forwarders->name,
fctx->fwdname);
dns_forwarders_detach(&forwarders);
return (better);