/* Get the CDS rdataset */
result = dns_db_findrdataset(gdb, node, ver, dns_rdatatype_cds,
dns_rdatatype_none, 0, &cdsset, NULL);
- if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdsset)) {
- dns_rdataset_disassociate(&cdsset);
+ if (result != ISC_R_SUCCESS) {
+ dns_rdataset_cleanup(&cdsset);
}
/* Get the CDNSKEY rdataset */
result = dns_db_findrdataset(gdb, node, ver, dns_rdatatype_cdnskey,
dns_rdatatype_none, 0, &cdnskeyset, NULL);
- if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdnskeyset)) {
- dns_rdataset_disassociate(&cdnskeyset);
+ if (result != ISC_R_SUCCESS) {
+ dns_rdataset_cleanup(&cdnskeyset);
}
dns_diff_init(isc_g_mctx, &diff);
if (result == ISC_R_SUCCESS) {
if (i == nlabels && type == dns_rdatatype_any) {
result = DNS_R_ZONECUT;
- dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(
- sigrdataset))
- {
- dns_rdataset_disassociate(
- sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
} else {
result = DNS_R_DELEGATION;
}
break;
}
- if (rdataset == &xrdataset && dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
+ if (rdataset == &xrdataset) {
+ dns_rdataset_cleanup(rdataset);
}
if (foundname != NULL) {
result = dns_ncache_add(message, cache, node, covers, now, minttl,
maxttl, optout, secure, added);
- if (added == &rdataset && dns_rdataset_isassociated(added)) {
- dns_rdataset_disassociate(added);
+ if (added == &rdataset) {
+ dns_rdataset_cleanup(added);
}
*nodep = node;
break;
}
- if (rdataset == &xrdataset && dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
+ if (rdataset == &xrdataset) {
+ dns_rdataset_cleanup(rdataset);
}
if (foundname != NULL) {
break;
}
- if (dns_rdataset_isassociated(&val->frdataset) &&
- val->keyset != &val->frdataset)
- {
- dns_rdataset_disassociate(&val->frdataset);
+ if (val->keyset != &val->frdataset) {
+ dns_rdataset_cleanup(&val->frdataset);
}
dns_rdataset_cleanup(&val->fsigrdataset);
}
cleanup:
- if (dns_rdataset_isassociated(&zrdataset)) {
- dns_rdataset_disassociate(&zrdataset);
- dns_rdataset_cleanup(&zsigrdataset);
- }
+ dns_rdataset_cleanup(&zrdataset);
+ dns_rdataset_cleanup(&zsigrdataset);
if (zdb != NULL) {
if (znode != NULL) {
finish:
if (use_zone) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- dns_rdataset_cleanup(sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
+
dns_name_copy(zfname, fname);
if (dcname != NULL) {
dns_name_copy(zfname, dcname);
}
cleanup:
- if (dns_rdataset_isassociated(&zrdataset)) {
- dns_rdataset_disassociate(&zrdataset);
- dns_rdataset_cleanup(&zsigrdataset);
- }
+ dns_rdataset_cleanup(&zrdataset);
+ dns_rdataset_cleanup(&zsigrdataset);
+
if (db != NULL) {
dns_db_detach(&db);
}
/* Get the current CDS rdataset */
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_cds,
dns_rdatatype_none, 0, &cdsset, NULL);
- if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdsset)) {
- dns_rdataset_disassociate(&cdsset);
- } else if (result == ISC_R_SUCCESS && kasp != NULL &&
- ttl != cdsset.ttl && !offlineksk)
- {
+ if (result != ISC_R_SUCCESS) {
+ dns_rdataset_cleanup(&cdsset);
+ } else if (kasp != NULL && ttl != cdsset.ttl && !offlineksk) {
update_ttl(&cdsset, &zone->origin, ttl, &diff);
dnssec_log(zone, ISC_LOG_INFO, "Updating CDS TTL from %u to %u",
cdsset.ttl, ttl);
/* Get the current CDNSKEY rdataset */
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_cdnskey,
dns_rdatatype_none, 0, &cdnskeyset, NULL);
- if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdnskeyset)) {
- dns_rdataset_disassociate(&cdnskeyset);
- } else if (result == ISC_R_SUCCESS && kasp != NULL &&
- ttl != cdnskeyset.ttl && !offlineksk)
- {
+ if (result != ISC_R_SUCCESS) {
+ dns_rdataset_cleanup(&cdnskeyset);
+ } else if (kasp != NULL && ttl != cdnskeyset.ttl && !offlineksk) {
update_ttl(&cdnskeyset, &zone->origin, ttl, &diff);
dnssec_log(zone, ISC_LOG_INFO,
"Updating CDNSKEY TTL from %u to %u", cdnskeyset.ttl,
const dns_name_t *name, dns_dbnode_t *node) {
char namebuf[DNS_NAME_FORMATSIZE];
char typebuf[DNS_RDATATYPE_FORMATSIZE];
- dns_rdataset_t sigrdataset = DNS_RDATASET_INIT;
dns_rdatasetiter_t *rdsiter = NULL;
isc_result_t result;
- dns_rdataset_init(&sigrdataset);
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",
return result;
}
DNS_RDATASETITER_FOREACH(rdsiter) {
+ dns_rdataset_t sigrdataset = DNS_RDATASET_INIT;
dns_rdatasetiter_current(rdsiter, &sigrdataset);
if (sigrdataset.type == dns_rdatatype_rrsig &&
sigrdataset.covers == rdataset->type)
{
+ dns_rdataset_disassociate(&sigrdataset);
dns_name_format(name, namebuf, sizeof(namebuf));
dns_rdatatype_format(rdataset->type, typebuf,
sizeof(typebuf));
}
dns_rdataset_disassociate(&sigrdataset);
}
- dns_rdataset_cleanup(&sigrdataset);
dns_rdatasetiter_destroy(&rdsiter);
return ISC_R_SUCCESS;
/*
* Do not return signatures if the zone is not fully signed.
*/
- if (sigrdataset != NULL && !dns_db_issecure(db) &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
+ if (!dns_db_issecure(db)) {
+ dns_rdataset_cleanup(sigrdataset);
}
*nodep = node;
if (result == DNS_R_NCACHENXDOMAIN) {
goto addname;
} else if (result == DNS_R_NCACHENXRRSET) {
- dns_rdataset_disassociate(rdataset);
+ dns_rdataset_cleanup(rdataset);
dns_rdataset_cleanup(sigrdataset);
} else if (result == ISC_R_SUCCESS) {
bool invalid = false;
sigrdataset);
}
if (invalid && DNS_TRUST_PENDING(rdataset->trust)) {
- dns_rdataset_disassociate(rdataset);
+ dns_rdataset_cleanup(rdataset);
dns_rdataset_cleanup(sigrdataset);
} else if (!query_isduplicate(client, fname,
dns_rdatatype_a, &mname))
}
rdataset = ns_client_newrdataset(client);
} else {
- dns_rdataset_disassociate(rdataset);
+ dns_rdataset_cleanup(rdataset);
dns_rdataset_cleanup(sigrdataset);
}
}
if (result == DNS_R_NCACHENXDOMAIN) {
goto addname;
} else if (result == DNS_R_NCACHENXRRSET) {
- dns_rdataset_disassociate(rdataset);
+ dns_rdataset_cleanup(rdataset);
dns_rdataset_cleanup(sigrdataset);
} else if (result == ISC_R_SUCCESS) {
bool invalid = false;
}
if (invalid && DNS_TRUST_PENDING(rdataset->trust)) {
- dns_rdataset_disassociate(rdataset);
+ dns_rdataset_cleanup(rdataset);
dns_rdataset_cleanup(sigrdataset);
} else if (!query_isduplicate(client, fname,
dns_rdatatype_aaaa,
if (zonep != NULL && *zonep != NULL) {
dns_zone_detach(zonep);
}
- if (rdatasetp != NULL && *rdatasetp != NULL &&
- dns_rdataset_isassociated(*rdatasetp))
- {
- dns_rdataset_disassociate(*rdatasetp);
+ if (rdatasetp != NULL) {
+ dns_rdataset_cleanup(*rdatasetp);
}
}
if (found != NULL && optout &&
dns_name_issubdomain(&name, dns_db_origin(db)))
{
- dns_rdataset_disassociate(rdataset);
+ dns_rdataset_cleanup(rdataset);
dns_rdataset_cleanup(sigrdataset);
skip++;
dns_name_getlabelsequence(qname, skip, labels - skip,