static void
freeset(dns_rdataset_t *rdataset) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
}
static void
emits(showall, cds, &rdata);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (verbose > 10) {
isc_mem_stats(isc_g_mctx, stdout);
}
emit(dir, &rdata);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (verbose > 10) {
isc_mem_stats(isc_g_mctx, stdout);
}
}
check_result(result, "dns_rdataset_first/next");
- if (dns_rdataset_isassociated(&sigset)) {
- dns_rdataset_disassociate(&sigset);
- }
+ dns_rdataset_cleanup(&sigset);
ISC_LIST_FOREACH(keylist, key, link) {
if (REVOKE(key->key) && set->type != dns_rdatatype_dnskey) {
dns_rdataset_init(&dsset);
result = dns_db_findrdataset(gdb, node, gversion, dns_rdatatype_ds, 0,
0, &dsset, NULL);
- if (dns_rdataset_isassociated(&dsset)) {
- dns_rdataset_disassociate(&dsset);
- }
+ dns_rdataset_cleanup(&dsset);
return result == ISC_R_SUCCESS;
}
dns_rdataset_init(&dnameset);
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_dname, 0, 0,
&dnameset, NULL);
- if (dns_rdataset_isassociated(&dnameset)) {
- dns_rdataset_disassociate(&dnameset);
- }
+ dns_rdataset_cleanup(&dnameset);
return result == ISC_R_SUCCESS;
}
dns_rdataset_init(&nsec);
result = dns_db_findrdataset(gdb, node, gversion, nsec_datatype,
0, 0, &nsec, NULL);
- if (dns_rdataset_isassociated(&nsec)) {
- dns_rdataset_disassociate(&nsec);
- }
+ dns_rdataset_cleanup(&nsec);
if (result == ISC_R_SUCCESS) {
found = true;
} else if (nsec_datatype == dns_rdatatype_nsec3) {
NULL);
check_result(result, "dns_db_addrdataset");
dns_rdataset_disassociate(&dsset);
- if (dns_rdataset_isassociated(&sigdsset)) {
- dns_rdataset_disassociate(&sigdsset);
- }
+ dns_rdataset_cleanup(&sigdsset);
} else if (dns_rdataset_isassociated(&sigdsset)) {
result = dns_db_deleterdataset(gdb, node, gversion,
dns_rdatatype_rrsig,
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
- if (dns_rdataset_isassociated(&keysigs)) {
- dns_rdataset_disassociate(&keysigs);
- }
- if (dns_rdataset_isassociated(&soasigs)) {
- dns_rdataset_disassociate(&soasigs);
- }
+ dns_rdataset_cleanup(&rdataset);
+ dns_rdataset_cleanup(&keysigs);
+ dns_rdataset_cleanup(&soasigs);
dns_db_detachnode(&node);
dns_db_closeversion(gdb, ¤tversion, false);
}
dns_diff_clear(&diff);
- if (dns_rdataset_isassociated(&cdsset)) {
- dns_rdataset_disassociate(&cdsset);
- }
- if (dns_rdataset_isassociated(&cdnskeyset)) {
- dns_rdataset_disassociate(&cdnskeyset);
- }
+ dns_rdataset_cleanup(&cdsset);
+ dns_rdataset_cleanup(&cdnskeyset);
clear_keylist(&rmkeys);
clear_keylist(&matchkeys);
dns_rdata_freestruct(&nsec3);
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
dns_resolver_freefresp(&resp);
dns_resolver_destroyfetch(&tat->fetch);
- if (dns_rdataset_isassociated(&tat->rdataset)) {
- dns_rdataset_disassociate(&tat->rdataset);
- }
- if (dns_rdataset_isassociated(&tat->sigrdataset)) {
- dns_rdataset_disassociate(&tat->sigrdataset);
- }
+ dns_rdataset_cleanup(&tat->rdataset);
+ dns_rdataset_cleanup(&tat->sigrdataset);
dns_view_detach(&tat->view);
isc_mem_putanddetach(&tat->mctx, tat, sizeof(*tat));
}
* it succeeds. Thus, we need to check whether 'nameservers' is
* associated and release it if it is.
*/
- if (dns_rdataset_isassociated(&nameservers)) {
- dns_rdataset_disassociate(&nameservers);
- }
+ dns_rdataset_cleanup(&nameservers);
if (result != ISC_R_SUCCESS) {
dns_view_detach(&tat->view);
}
cleanup:
- if (dns_rdataset_isassociated(&privset)) {
- dns_rdataset_disassociate(&privset);
- }
+ dns_rdataset_cleanup(&privset);
if (node != NULL) {
dns_db_detachnode(&node);
}
result = ISC_R_SUCCESS;
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (apexnode != NULL) {
dns_db_detachnode(&apexnode);
}
result = dns_db_findrdataset(
qctx->db, qctx->node, qctx->version, dns_rdatatype_aaaa,
0, qctx->client->inner.now, trdataset, NULL);
- if (dns_rdataset_isassociated(trdataset)) {
- dns_rdataset_disassociate(trdataset);
- }
+ dns_rdataset_cleanup(trdataset);
ns_client_putrdataset(qctx->client, &trdataset);
/*
result = dns_db_findrdataset(
qctx->db, qctx->node, qctx->version, dns_rdatatype_a, 0,
qctx->client->inner.now, trdataset, NULL);
- if (dns_rdataset_isassociated(trdataset)) {
- dns_rdataset_disassociate(trdataset);
- }
+ dns_rdataset_cleanup(trdataset);
ns_client_putrdataset(qctx->client, &trdataset);
/*
--- /dev/null
+@@
+expression R;
+@@
+
+- if (R != NULL && dns_rdataset_isassociated(R)) {
+- dns_rdataset_disassociate(R);
+- }
++ dns_rdataset_cleanup(R);
+
+@@
+expression R;
+@@
+
+- if (dns_rdataset_isassociated(R)) {
+- dns_rdataset_disassociate(R);
+- }
++ dns_rdataset_cleanup(R);
fetch->magic = 0;
- if (dns_rdataset_isassociated(&fetch->rdataset)) {
- dns_rdataset_disassociate(&fetch->rdataset);
- }
+ dns_rdataset_cleanup(&fetch->rdataset);
isc_mem_put(adb->hmctx, fetch, sizeof(*fetch));
}
break;
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
return result;
}
if (fetch != NULL) {
free_adbfetch(adb, &fetch);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
return result;
}
*rdatasetp = NULL;
REQUIRE(rdataset != NULL);
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
isc_mem_put(mctx, rdataset, sizeof(*rdataset));
}
if (node != NULL) {
dns_db_detachnode(&node);
}
- if (dns_rdataset_isassociated(&ardataset)) {
- dns_rdataset_disassociate(&ardataset);
- }
+ dns_rdataset_cleanup(&ardataset);
return result;
}
}
}
- if (dns_rdataset_isassociated(&sigs)) {
- dns_rdataset_disassociate(&sigs);
- }
+ dns_rdataset_cleanup(&sigs);
return result;
}
result = ISC_R_SUCCESS;
cleanup:
- if (dns_rdataset_isassociated(&keys)) {
- dns_rdataset_disassociate(&keys);
- }
+ dns_rdataset_cleanup(&keys);
if (dnskey != NULL) {
dst_key_free(&dnskey);
}
result = ISC_R_SUCCESS;
}
cleanup:
- if (dns_rdataset_isassociated(&rds)) {
- dns_rdataset_disassociate(&rds);
- }
+ dns_rdataset_cleanup(&rds);
return result;
}
cleanup:
if (rdataset != NULL) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
dns_message_puttemprdataset(msg, &rdataset);
}
}
freesig:
- if (dns_rdataset_isassociated(&keyset)) {
- dns_rdataset_disassociate(&keyset);
- }
+ dns_rdataset_cleanup(&keyset);
dns_rdata_freestruct(&sig);
return result;
}
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
return result;
}
if (dbit != NULL) {
dns_dbiterator_destroy(&dbit);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
result = ISC_R_SUCCESS;
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_db_detachnode(&node);
return result;
}
result = ISC_R_SUCCESS;
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
- if (dns_rdataset_isassociated(&prdataset)) {
- dns_rdataset_disassociate(&prdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
+ dns_rdataset_cleanup(&prdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
if (dbit != NULL) {
dns_dbiterator_destroy(&dbit);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
result = ISC_R_SUCCESS;
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
REQUIRE(nta->timer == NULL);
nta->magic = 0;
- if (dns_rdataset_isassociated(&nta->rdataset)) {
- dns_rdataset_disassociate(&nta->rdataset);
- }
- if (dns_rdataset_isassociated(&nta->sigrdataset)) {
- dns_rdataset_disassociate(&nta->sigrdataset);
- }
+ dns_rdataset_cleanup(&nta->rdataset);
+ dns_rdataset_cleanup(&nta->sigrdataset);
if (nta->fetch != NULL) {
dns_resolver_cancelfetch(nta->fetch);
dns_resolver_destroyfetch(&nta->fetch);
dns_view_t *view = ntatable->view;
isc_stdtime_t now = isc_stdtime_now();
- if (dns_rdataset_isassociated(&nta->rdataset)) {
- dns_rdataset_disassociate(&nta->rdataset);
- }
- if (dns_rdataset_isassociated(&nta->sigrdataset)) {
- dns_rdataset_disassociate(&nta->sigrdataset);
- }
+ dns_rdataset_cleanup(&nta->rdataset);
+ dns_rdataset_cleanup(&nta->sigrdataset);
if (nta->fetch == resp->fetch) {
nta->fetch = NULL;
}
dns_resolver_cancelfetch(nta->fetch);
nta->fetch = NULL;
}
- if (dns_rdataset_isassociated(&nta->rdataset)) {
- dns_rdataset_disassociate(&nta->rdataset);
- }
- if (dns_rdataset_isassociated(&nta->sigrdataset)) {
- dns_rdataset_disassociate(&nta->sigrdataset);
- }
+ dns_rdataset_cleanup(&nta->rdataset);
+ dns_rdataset_cleanup(&nta->sigrdataset);
if (atomic_load(&ntatable->shuttingdown)) {
isc_timer_stop(nta->timer);
success:
result = ISC_R_SUCCESS;
cleanup:
- if (dns_rdataset_isassociated(&nsecset)) {
- dns_rdataset_disassociate(&nsecset);
- }
- if (dns_rdataset_isassociated(&nsec3paramset)) {
- dns_rdataset_disassociate(&nsec3paramset);
- }
- if (dns_rdataset_isassociated(&privateset)) {
- dns_rdataset_disassociate(&privateset);
- }
+ dns_rdataset_cleanup(&nsecset);
+ dns_rdataset_cleanup(&nsec3paramset);
+ dns_rdataset_cleanup(&privateset);
if (node != NULL) {
dns_db_detachnode(&node);
}
while (glue != NULL) {
dns_glue_t *next = glue->next;
- if (dns_rdataset_isassociated(&glue->rdataset_a)) {
- dns_rdataset_disassociate(&glue->rdataset_a);
- }
- if (dns_rdataset_isassociated(&glue->sigrdataset_a)) {
- dns_rdataset_disassociate(&glue->sigrdataset_a);
- }
+ dns_rdataset_cleanup(&glue->rdataset_a);
+ dns_rdataset_cleanup(&glue->sigrdataset_a);
- if (dns_rdataset_isassociated(&glue->rdataset_aaaa)) {
- dns_rdataset_disassociate(&glue->rdataset_aaaa);
- }
- if (dns_rdataset_isassociated(&glue->sigrdataset_aaaa)) {
- dns_rdataset_disassociate(&glue->sigrdataset_aaaa);
- }
+ dns_rdataset_cleanup(&glue->rdataset_aaaa);
+ dns_rdataset_cleanup(&glue->sigrdataset_aaaa);
dns_rdataset_invalidate(&glue->rdataset_a);
dns_rdataset_invalidate(&glue->sigrdataset_a);
result = ISC_R_SUCCESS;
- if (dns_rdataset_isassociated(&rdataset_a)) {
- dns_rdataset_disassociate(&rdataset_a);
- }
- if (dns_rdataset_isassociated(&sigrdataset_a)) {
- dns_rdataset_disassociate(&sigrdataset_a);
- }
+ dns_rdataset_cleanup(&rdataset_a);
+ dns_rdataset_cleanup(&sigrdataset_a);
- if (dns_rdataset_isassociated(&rdataset_aaaa)) {
- dns_rdataset_disassociate(&rdataset_aaaa);
- }
- if (dns_rdataset_isassociated(&sigrdataset_aaaa)) {
- dns_rdataset_disassociate(&sigrdataset_aaaa);
- }
+ dns_rdataset_cleanup(&rdataset_aaaa);
+ dns_rdataset_cleanup(&sigrdataset_aaaa);
if (node_a != NULL) {
dns__db_detachnode((dns_dbnode_t **)&node_a DNS__DB_FLARG_PASS);
if (node != NULL) {
dns_db_detachnode(&node);
}
- if (dns_rdataset_isassociated(&ardataset)) {
- dns_rdataset_disassociate(&ardataset);
- }
+ dns_rdataset_cleanup(&ardataset);
return result;
}
break;
}
- if (dns_rdataset_isassociated(&fctx->nameservers)) {
- dns_rdataset_disassociate(&fctx->nameservers);
- }
+ dns_rdataset_cleanup(&fctx->nameservers);
if (dns_rdatatype_atparent(fctx->type)) {
findoptions |= DNS_DBFIND_NOEXACT;
if (db != NULL) {
dns_db_detach(&db);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
- if (dns_rdataset_isassociated(&sigrdataset)) {
- dns_rdataset_disassociate(&sigrdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
+ dns_rdataset_cleanup(&sigrdataset);
if (result != ISC_R_SUCCESS) {
/* An error occurred, tear down whole fctx */
fctx_failure_unref(fctx, result);
}
fcount_decr(fctx);
dns_message_detach(&fctx->qmessage);
- if (dns_rdataset_isassociated(&fctx->nameservers)) {
- dns_rdataset_disassociate(&fctx->nameservers);
- }
+ dns_rdataset_cleanup(&fctx->nameservers);
dns_db_detach(&fctx->cache);
dns_adb_detach(&fctx->adb);
dns_dispatchmgr_detach(&fctx->dispatchmgr);
fcount_decr(fctx);
cleanup_nameservers:
- if (dns_rdataset_isassociated(&fctx->nameservers)) {
- dns_rdataset_disassociate(&fctx->nameservers);
- }
+ dns_rdataset_cleanup(&fctx->nameservers);
isc_mem_free(fctx->mctx, fctx->info);
if (fctx->nfails != NULL) {
isc_counter_detach(&fctx->nfails);
case ISC_R_SUCCESS:
FCTXTRACE("resuming DS lookup");
- if (dns_rdataset_isassociated(&fctx->nameservers)) {
- dns_rdataset_disassociate(&fctx->nameservers);
- }
+ dns_rdataset_cleanup(&fctx->nameservers);
dns_rdataset_clone(frdataset, &fctx->nameservers);
/*
* Disassociate now the NS's are saved.
*/
- if (dns_rdataset_isassociated(frdataset)) {
- dns_rdataset_disassociate(frdataset);
- }
+ dns_rdataset_cleanup(frdataset);
fctx->ns_ttl = fctx->nameservers.ttl;
fctx->ns_ttl_ok = true;
case ISC_R_CANCELED:
/* Don't try anymore. */
/* Can't be done in cleanup. */
- if (dns_rdataset_isassociated(frdataset)) {
- dns_rdataset_disassociate(frdataset);
- }
+ dns_rdataset_cleanup(frdataset);
goto cleanup;
default:
/*
* Disassociate for the next dns_resolver_createfetch call.
*/
- if (dns_rdataset_isassociated(frdataset)) {
- dns_rdataset_disassociate(frdataset);
- }
+ dns_rdataset_cleanup(frdataset);
/*
* If the chain of resume_dslookup() invocations managed to
}
}
- if (dns_rdataset_isassociated(&nameservers)) {
- dns_rdataset_disassociate(&nameservers);
- }
+ dns_rdataset_cleanup(&nameservers);
}
cleanup:
INSIST(dns_name_countlabels(fctx->domain) > 0);
fcount_decr(fctx);
- if (dns_rdataset_isassociated(&fctx->nameservers)) {
- dns_rdataset_disassociate(&fctx->nameservers);
- }
+ dns_rdataset_cleanup(&fctx->nameservers);
dns_name_copy(rctx->ns_name, fctx->domain);
if (resp->db != NULL) {
dns_db_detach(&resp->db);
}
- if (dns_rdataset_isassociated(resp->rdataset)) {
- dns_rdataset_disassociate(resp->rdataset);
- }
+ dns_rdataset_cleanup(resp->rdataset);
INSIST(resp->sigrdataset == NULL);
isc_mem_put(res->mctx, resp->rdataset, sizeof(*resp->rdataset));
result = dns_db_find(fctx->cache, &name, NULL,
dns_rdatatype_ns, 0, 0, NULL,
fname, &rdataset, NULL);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
switch (result) {
case ISC_R_SUCCESS:
case DNS_R_CNAME:
}
cleanup:
- if (dns_rdataset_isassociated(&rootns)) {
- dns_rdataset_disassociate(&rootns);
- }
+ dns_rdataset_cleanup(&rootns);
if (rdsiter != NULL) {
dns_rdatasetiter_destroy(&rdsiter);
}
report(view, name, true, &rdata);
}
}
- if (dns_rdataset_isassociated(&rootrrset)) {
- dns_rdataset_disassociate(&rootrrset);
- }
- if (dns_rdataset_isassociated(&hintrrset)) {
- dns_rdataset_disassociate(&hintrrset);
- }
+ dns_rdataset_cleanup(&rootrrset);
+ dns_rdataset_cleanup(&hintrrset);
/*
* Check AAAA records.
report(view, name, true, &rdata);
}
}
- if (dns_rdataset_isassociated(&rootrrset)) {
- dns_rdataset_disassociate(&rootrrset);
- }
- if (dns_rdataset_isassociated(&hintrrset)) {
- dns_rdataset_disassociate(&hintrrset);
- }
+ dns_rdataset_cleanup(&rootrrset);
+ dns_rdataset_cleanup(&hintrrset);
}
void
}
cleanup:
- if (dns_rdataset_isassociated(&rootns)) {
- dns_rdataset_disassociate(&rootns);
- }
- if (dns_rdataset_isassociated(&hintns)) {
- dns_rdataset_disassociate(&hintns);
- }
+ dns_rdataset_cleanup(&rootns);
+ dns_rdataset_cleanup(&hintns);
}
dns_rriterator_first(dns_rriterator_t *it) {
REQUIRE(VALID_RRITERATOR(it));
/* Reset state */
- if (dns_rdataset_isassociated(&it->rdataset)) {
- dns_rdataset_disassociate(&it->rdataset);
- }
+ dns_rdataset_cleanup(&it->rdataset);
if (it->rdatasetit != NULL) {
dns_rdatasetiter_destroy(&it->rdatasetit);
}
isc_result_t
dns_rriterator_nextrrset(dns_rriterator_t *it) {
REQUIRE(VALID_RRITERATOR(it));
- if (dns_rdataset_isassociated(&it->rdataset)) {
- dns_rdataset_disassociate(&it->rdataset);
- }
+ dns_rdataset_cleanup(&it->rdataset);
it->result = dns_rdatasetiter_next(it->rdatasetit);
/*
* The while loop body is executed more than once
void
dns_rriterator_destroy(dns_rriterator_t *it) {
REQUIRE(VALID_RRITERATOR(it));
- if (dns_rdataset_isassociated(&it->rdataset)) {
- dns_rdataset_disassociate(&it->rdataset);
- }
+ dns_rdataset_cleanup(&it->rdataset);
if (it->rdatasetit != NULL) {
dns_rdatasetiter_destroy(&it->rdatasetit);
}
{
result = DNS_R_ZONECUT;
dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
break;
} else if (result == ISC_R_SUCCESS) {
result = DNS_R_DELEGATION;
ISC_LIST_UNLINK(*namelist, name, link);
ISC_LIST_FOREACH(name->list, set, link) {
ISC_LIST_UNLINK(name->list, set, link);
- if (dns_rdataset_isassociated(set)) {
- dns_rdataset_disassociate(set);
- }
+ dns_rdataset_cleanup(set);
dns_message_puttemprdataset(msg, &set);
}
dns_message_puttempname(msg, &name);
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
*/
static void
disassociate_rdatasets(dns_validator_t *val) {
- if (dns_rdataset_isassociated(&val->fdsset)) {
- dns_rdataset_disassociate(&val->fdsset);
- }
- if (dns_rdataset_isassociated(&val->frdataset)) {
- dns_rdataset_disassociate(&val->frdataset);
- }
- if (dns_rdataset_isassociated(&val->fsigrdataset)) {
- dns_rdataset_disassociate(&val->fsigrdataset);
- }
+ dns_rdataset_cleanup(&val->fdsset);
+ dns_rdataset_cleanup(&val->frdataset);
+ dns_rdataset_cleanup(&val->fsigrdataset);
}
/*%
if (resp->db != NULL) {
dns_db_detach(&resp->db);
}
- if (dns_rdataset_isassociated(&val->fsigrdataset)) {
- dns_rdataset_disassociate(&val->fsigrdataset);
- }
+ dns_rdataset_cleanup(&val->fsigrdataset);
validator_log(val, ISC_LOG_DEBUG(3), "in fetch_callback_dnskey");
if (resp->db != NULL) {
dns_db_detach(&resp->db);
}
- if (dns_rdataset_isassociated(&val->fsigrdataset)) {
- dns_rdataset_disassociate(&val->fsigrdataset);
- }
+ dns_rdataset_cleanup(&val->fsigrdataset);
validator_log(val, ISC_LOG_DEBUG(3), "in fetch_callback_ds");
{
dns_rdataset_disassociate(&val->frdataset);
}
- if (dns_rdataset_isassociated(&val->fsigrdataset)) {
- dns_rdataset_disassociate(&val->fsigrdataset);
- }
+ dns_rdataset_cleanup(&val->fsigrdataset);
return validate_helper_run(val, resume_answer_with_key);
}
{
dns_rdataset_disassociate(&val->frdataset);
}
- if (dns_rdataset_isassociated(&val->fsigrdataset)) {
- dns_rdataset_disassociate(&val->fsigrdataset);
- }
+ dns_rdataset_cleanup(&val->fsigrdataset);
return result;
}
if (!exists && NEEDNOQNAME(val)) {
proofs[DNS_VALIDATOR_NOWILDCARDPROOF] = name;
}
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return ISC_R_SUCCESS;
}
if (!exists && NEEDNOQNAME(val)) {
proofs[DNS_VALIDATOR_NOWILDCARDPROOF] = name;
}
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return ISC_R_SUCCESS;
}
}
if (result == ISC_R_NOMORE) {
result = ISC_R_SUCCESS;
}
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return result;
}
NULL, NULL, NULL, NULL, NULL,
NULL, validator_log, val);
if (result != ISC_R_IGNORE && result != ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return result;
}
}
POST(result);
if (dns_name_countlabels(zonename) == 0) {
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return ISC_R_SUCCESS;
}
{
proofs[DNS_VALIDATOR_NOWILDCARDPROOF] = name;
}
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return result;
}
if (result != ISC_R_SUCCESS) {
{
result = checkwildcard(val, dns_rdatatype_nsec3, zonename);
if (result != ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return result;
}
}
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
return result;
}
*keysetp = NULL;
if (check_ds_private(&val->frdataset)) {
- if (dns_rdataset_isassociated(&val->dsrdataset))
- {
- dns_rdataset_disassociate(
- &val->dsrdataset);
- }
+ dns_rdataset_cleanup(&val->dsrdataset);
dns_rdataset_clone(&val->frdataset,
&val->dsrdataset);
dssetp = &val->dsrdataset;
}
if (!have_dnskey && check_ds_private(&val->frdataset)) {
- if (dns_rdataset_isassociated(&val->dsrdataset))
- {
- dns_rdataset_disassociate(
- &val->dsrdataset);
- }
+ dns_rdataset_cleanup(&val->dsrdataset);
dns_rdataset_clone(&val->frdataset,
&val->dsrdataset);
dssetp = &val->dsrdataset;
dns_keytable_detach(&val->keytable);
}
disassociate_rdatasets(val);
- if (dns_rdataset_isassociated(&val->dsrdataset)) {
- dns_rdataset_disassociate(&val->dsrdataset);
- }
+ dns_rdataset_cleanup(&val->dsrdataset);
mctx = val->view->mctx;
if (val->siginfo != NULL) {
isc_mem_put(mctx, val->siginfo, sizeof(*val->siginfo));
foundname, rdataset, sigrdataset);
if (result == DNS_R_DELEGATION || result == ISC_R_NOTFOUND) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
if (result == ISC_R_NOTFOUND && !is_staticstub_zone && use_hints &&
view->hints != NULL)
{
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
if (db != NULL) {
if (node != NULL) {
dns_db_detachnode(&node);
cleanup:
if (dns_rdataset_isassociated(&zrdataset)) {
dns_rdataset_disassociate(&zrdataset);
- if (dns_rdataset_isassociated(&zsigrdataset)) {
- dns_rdataset_disassociate(&zsigrdataset);
- }
+ dns_rdataset_cleanup(&zsigrdataset);
}
if (zdb != NULL) {
* foundname is not returned by this simplified API. We
* disassociate them here to prevent any misuse by the caller.
*/
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
} else if (result != ISC_R_SUCCESS && result != DNS_R_GLUE &&
result != DNS_R_HINT && result != DNS_R_NCACHENXDOMAIN &&
result != DNS_R_NCACHENXRRSET && result != DNS_R_NXRRSET &&
result != DNS_R_HINTNXRRSET && result != ISC_R_NOTFOUND)
{
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
result = ISC_R_NOTFOUND;
}
if (use_zone) {
if (dns_rdataset_isassociated(rdataset)) {
dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
}
dns_name_copy(zfname, fname);
if (dcname != NULL) {
* We can't even find the hints for the root
* nameservers!
*/
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
result = ISC_R_NOTFOUND;
} else if (dcname != NULL) {
dns_name_copy(fname, dcname);
cleanup:
if (dns_rdataset_isassociated(&zrdataset)) {
dns_rdataset_disassociate(&zrdataset);
- if (dns_rdataset_isassociated(&zsigrdataset)) {
- dns_rdataset_disassociate(&zsigrdataset);
- }
+ dns_rdataset_cleanup(&zsigrdataset);
}
if (db != NULL) {
dns_db_detach(&db);
}
finish:
- if (dns_rdataset_isassociated(&dsset)) {
- dns_rdataset_disassociate(&dsset);
- }
+ dns_rdataset_cleanup(&dsset);
if (knode != NULL) {
dns_keynode_detach(&knode);
}
case DNS_R_CNAME:
break;
default:
- if (dns_rdataset_isassociated(&a)) {
- dns_rdataset_disassociate(&a);
- }
+ dns_rdataset_cleanup(&a);
result = dns_db_find(db, name, NULL, dns_rdatatype_a,
DNS_DBFIND_GLUEOK, 0, NULL, foundname, &a,
NULL);
if (result == ISC_R_SUCCESS) {
*has_aaaa = true;
}
- if (dns_rdataset_isassociated(&aaaa)) {
- dns_rdataset_disassociate(&aaaa);
- }
+ dns_rdataset_cleanup(&aaaa);
}
return true;
} else if (result == DNS_R_GLUE && has_a != NULL) {
DNS_DBFIND_GLUEOK, 0, NULL, foundname,
&aaaa, NULL);
if (tresult == ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(&a)) {
- dns_rdataset_disassociate(&a);
- }
+ dns_rdataset_cleanup(&a);
SET_IF_NOT_NULL(has_aaaa, true);
dns_rdataset_disassociate(&aaaa);
return true;
answer = (zone->checkns)(zone, name, owner, &a,
&aaaa);
}
- if (dns_rdataset_isassociated(&a)) {
- dns_rdataset_disassociate(&a);
- }
- if (dns_rdataset_isassociated(&aaaa)) {
- dns_rdataset_disassociate(&aaaa);
- }
+ dns_rdataset_cleanup(&a);
+ dns_rdataset_cleanup(&aaaa);
return answer;
}
}
/* answer = false; */
}
- if (dns_rdataset_isassociated(&a)) {
- dns_rdataset_disassociate(&a);
- }
- if (dns_rdataset_isassociated(&aaaa)) {
- dns_rdataset_disassociate(&aaaa);
- }
+ dns_rdataset_cleanup(&a);
+ dns_rdataset_cleanup(&aaaa);
return answer;
}
dns_rdataset_init(&rdataset);
result = dns_db_find(db, name, NULL, type, 0, 0, NULL, foundname,
&rdataset, NULL);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
switch (result) {
case DNS_R_DELEGATION:
if (zone->checkisservedby != NULL) {
result = dns_db_find(db, &zone->origin, NULL, dns_rdatatype_ns,
0, 0, NULL, name, &rdataset, NULL);
if (result != ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
goto cleanup;
}
result = dns_db_find(db, &zone->origin, NULL, dns_rdatatype_ns,
0, 0, NULL, name, &rdataset, NULL);
if (result != ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
goto cleanup;
}
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_db_closeversion(db, &version, false);
dns_db_detachnode(&node);
return result;
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (pubkey != NULL) {
dst_key_free(&pubkey);
}
}
cleanup:
- if (dns_rdataset_isassociated(&keyset)) {
- dns_rdataset_disassociate(&keyset);
- }
+ dns_rdataset_cleanup(&keyset);
if (node != NULL) {
dns_db_detachnode(&node);
}
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
DNS_RDATASETITER_FOREACH(iterator) {
isc_stdtime_t when;
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_rdatasetiter_current(iterator, &rdataset);
if (rdataset.type == dns_rdatatype_soa ||
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (iterator != NULL) {
dns_rdatasetiter_destroy(&iterator);
}
result = dns_db_findrdataset(
db, node, version, dns_rdatatype_nsec,
dns_rdatatype_none, 0, &rdataset, NULL);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (result == ISC_R_NOTFOUND) {
goto success;
}
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
ttl = soa.minimum;
dns_rdata_reset(&rdata);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_nsec3param, 0,
0, &rdataset, NULL);
cleanup:
dns_db_detachnode(&node);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
return result;
}
*answer = !active;
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_db_detachnode(&node);
return result;
}
*/
*has_algp = (alg_found && !alg_missed);
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_rdatasetiter_destroy(&iterator);
return result;
}
dns_db_detach(&kfetch->db);
- if (dns_rdataset_isassociated(&kfetch->keydataset)) {
- dns_rdataset_disassociate(&kfetch->keydataset);
- }
+ dns_rdataset_cleanup(&kfetch->keydataset);
}
/*
secdb, node, secver, dns_rdatatype_dnskey,
dns_rdatatype_none, 0, &rdataset, NULL);
keyttl = (result == ISC_R_SUCCESS) ? rdataset.ttl : ttl;
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
result = dns_db_findrdataset(
secdb, node, secver, dns_rdatatype_cdnskey,
dns_rdatatype_none, 0, &rdataset, NULL);
ckeyttl = (result == ISC_R_SUCCESS) ? rdataset.ttl : ttl;
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
result = dns_db_findrdataset(
secdb, node, secver, dns_rdatatype_cds,
dns_rdatatype_none, 0, &rdataset, NULL);
cdsttl = (result == ISC_R_SUCCESS) ? rdataset.ttl : ttl;
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_db_detachnode(&node);
}
if (db != NULL) {
dns_db_detach(&db);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
- if (dns_rdataset_isassociated(&prdataset)) {
- dns_rdataset_disassociate(&prdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
+ dns_rdataset_cleanup(&prdataset);
return result;
}
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_dnskey,
dns_rdatatype_none, 0, &rdataset, NULL);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (result != ISC_R_NOTFOUND) {
goto cleanup;
}
if (ver != NULL) {
dns_db_closeversion(db, &ver, false);
}
- if (dns_rdataset_isassociated(&cdsset)) {
- dns_rdataset_disassociate(&cdsset);
- }
- if (dns_rdataset_isassociated(&keyset)) {
- dns_rdataset_disassociate(&keyset);
- }
- if (dns_rdataset_isassociated(&keysigs)) {
- dns_rdataset_disassociate(&keysigs);
- }
- if (dns_rdataset_isassociated(&soasigs)) {
- dns_rdataset_disassociate(&soasigs);
- }
- if (dns_rdataset_isassociated(&cdnskeyset)) {
- dns_rdataset_disassociate(&cdnskeyset);
- }
+ dns_rdataset_cleanup(&cdsset);
+ dns_rdataset_cleanup(&keyset);
+ dns_rdataset_cleanup(&keysigs);
+ dns_rdataset_cleanup(&soasigs);
+ dns_rdataset_cleanup(&cdnskeyset);
if (node != NULL) {
dns_db_detachnode(&node);
}
result = ISC_R_SUCCESS;
cleanup:
- if (dns_rdataset_isassociated(&cds)) {
- dns_rdataset_disassociate(&cds);
- }
- if (dns_rdataset_isassociated(&dnskey)) {
- dns_rdataset_disassociate(&dnskey);
- }
- if (dns_rdataset_isassociated(&cdnskey)) {
- dns_rdataset_disassociate(&cdnskey);
- }
+ dns_rdataset_cleanup(&cds);
+ dns_rdataset_cleanup(&dnskey);
+ dns_rdataset_cleanup(&cdnskey);
dns_db_detachnode(&node);
return result;
}
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (db != NULL) {
if (node != NULL) {
dns_db_detachnode(&node);
}
cleanup:
- if (dns_rdataset_isassociated(&prdataset)) {
- dns_rdataset_disassociate(&prdataset);
- }
- if (dns_rdataset_isassociated(&nrdataset)) {
- dns_rdataset_disassociate(&nrdataset);
- }
+ dns_rdataset_cleanup(&prdataset);
+ dns_rdataset_cleanup(&nrdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
}
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
cleanup:
isc_refcount_decrement(dns__zone_irefs(zone));
- if (dns_rdataset_isassociated(rrset)) {
- dns_rdataset_disassociate(rrset);
- }
- if (dns_rdataset_isassociated(sigset)) {
- dns_rdataset_disassociate(sigset);
- }
+ dns_rdataset_cleanup(rrset);
+ dns_rdataset_cleanup(sigset);
fetch->fetchmethods.cleanup_fetch(fetch);
result = dns_db_findrdataset(vctx->db, node, vctx->ver,
dns_rdatatype_dname, 0, 0, &dnameset,
NULL);
- if (dns_rdataset_isassociated(&dnameset)) {
- dns_rdataset_disassociate(&dnameset);
- }
+ dns_rdataset_cleanup(&dnameset);
return result == ISC_R_SUCCESS;
}
result = ISC_R_SUCCESS;
done:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
return result;
}
}
dns_rdataset_disassociate(&sigrdataset);
}
- if (dns_rdataset_isassociated(&sigrdataset)) {
- dns_rdataset_disassociate(&sigrdataset);
- }
+ dns_rdataset_cleanup(&sigrdataset);
dns_rdatasetiter_destroy(&rdsiter);
return ISC_R_SUCCESS;
*optout = ((nsec3.flags & DNS_NSEC3FLAG_OPTOUT) != 0);
done:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
result = ISC_R_SUCCESS;
done:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
}
done:
- if (dns_rdataset_isassociated(&sigrdataset)) {
- dns_rdataset_disassociate(&sigrdataset);
- }
+ dns_rdataset_cleanup(&sigrdataset);
dns_rdatasetiter_destroy(&rdsiter);
return result;
nsec_exists = true;
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
return nsec_exists ? ISC_R_FAILURE : ISC_R_SUCCESS;
}
static void
vctx_destroy(vctx_t *vctx) {
- if (dns_rdataset_isassociated(&vctx->keyset)) {
- dns_rdataset_disassociate(&vctx->keyset);
- }
- if (dns_rdataset_isassociated(&vctx->keysigs)) {
- dns_rdataset_disassociate(&vctx->keysigs);
- }
- if (dns_rdataset_isassociated(&vctx->soaset)) {
- dns_rdataset_disassociate(&vctx->soaset);
- }
- if (dns_rdataset_isassociated(&vctx->soasigs)) {
- dns_rdataset_disassociate(&vctx->soasigs);
- }
- if (dns_rdataset_isassociated(&vctx->nsecset)) {
- dns_rdataset_disassociate(&vctx->nsecset);
- }
- if (dns_rdataset_isassociated(&vctx->nsecsigs)) {
- dns_rdataset_disassociate(&vctx->nsecsigs);
- }
- if (dns_rdataset_isassociated(&vctx->nsec3paramset)) {
- dns_rdataset_disassociate(&vctx->nsec3paramset);
- }
- if (dns_rdataset_isassociated(&vctx->nsec3paramsigs)) {
- dns_rdataset_disassociate(&vctx->nsec3paramsigs);
- }
+ dns_rdataset_cleanup(&vctx->keyset);
+ dns_rdataset_cleanup(&vctx->keysigs);
+ dns_rdataset_cleanup(&vctx->soaset);
+ dns_rdataset_cleanup(&vctx->soasigs);
+ dns_rdataset_cleanup(&vctx->nsecset);
+ dns_rdataset_cleanup(&vctx->nsecsigs);
+ dns_rdataset_cleanup(&vctx->nsec3paramset);
+ dns_rdataset_cleanup(&vctx->nsec3paramsigs);
isc_heap_foreach(vctx->expected_chains, free_element_heap, vctx->mctx);
isc_heap_destroy(&vctx->expected_chains);
isc_heap_foreach(vctx->found_chains, free_element_heap, vctx->mctx);
rdataset = *rdatasetp;
if (rdataset != NULL) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
dns_message_puttemprdataset(client->message, rdatasetp);
}
}
client->query.dboptions, client->inner.now,
&node, fname, &cm, &ci, rdataset, sigrdataset);
if (result != ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
if (node != NULL) {
dns_db_detachnode(&node);
goto found;
}
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (sigrdataset != NULL && dns_rdataset_isassociated(sigrdataset)) {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
* XXXRTH This code could be more efficient.
*/
if (rdataset != NULL) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
} else {
rdataset = ns_client_newrdataset(client);
}
if (sigrdataset != NULL) {
- if (dns_rdataset_isassociated(sigrdataset)) {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
} else if (WANTDNSSEC(client)) {
sigrdataset = ns_client_newrdataset(client);
}
goto addname;
} else if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
} else if (result == ISC_R_SUCCESS) {
bool invalid = false;
mname = NULL;
}
if (invalid && DNS_TRUST_PENDING(rdataset->trust)) {
dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
} else if (!query_isduplicate(client, fname,
dns_rdatatype_a, &mname))
{
rdataset = ns_client_newrdataset(client);
} else {
dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
}
}
aaaa_lookup:
goto addname;
} else if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
} else if (result == ISC_R_SUCCESS) {
bool invalid = false;
mname = NULL;
if (invalid && DNS_TRUST_PENDING(rdataset->trust)) {
dns_rdataset_disassociate(rdataset);
- if (sigrdataset != NULL &&
- dns_rdataset_isassociated(sigrdataset))
- {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
} else if (!query_isduplicate(client, fname,
dns_rdatatype_aaaa,
&mname))
}
dst_key_free(&key);
} while (1);
- if (dns_rdataset_isassociated(&keyrdataset)) {
- dns_rdataset_disassociate(&keyrdataset);
- }
+ dns_rdataset_cleanup(&keyrdataset);
}
return false;
}
fixrdataset(ns_client_t *client, dns_rdataset_t **rdataset) {
if (*rdataset == NULL) {
*rdataset = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(*rdataset)) {
- dns_rdataset_disassociate(*rdataset);
+ } else {
+ dns_rdataset_cleanup(*rdataset);
}
}
if (*rdatasetp == NULL) {
*rdatasetp = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(*rdatasetp)) {
- dns_rdataset_disassociate(*rdatasetp);
+ } else {
+ dns_rdataset_cleanup(*rdatasetp);
}
return ISC_R_SUCCESS;
}
* Ask again to get the right DNS_R_DNAME/NXRRSET/...
* result if there is neither a CNAME nor target type.
*/
- if (dns_rdataset_isassociated(*rdatasetp)) {
- dns_rdataset_disassociate(*rdatasetp);
- }
+ dns_rdataset_cleanup(*rdatasetp);
dns_db_detachnode(nodep);
if (dns_rdatatype_issig(qtype)) {
rpz_log_fail_helper(client, level, nsname, DNS_RPZ_TYPE_NSIP,
DNS_RPZ_TYPE_NSDNAME, str, result);
}
- if (st->r.ns_rdataset != NULL &&
- dns_rdataset_isassociated(st->r.ns_rdataset))
- {
- dns_rdataset_disassociate(st->r.ns_rdataset);
- }
+ dns_rdataset_cleanup(st->r.ns_rdataset);
st->r.label--;
}
dns_name_issubdomain(&name, dns_db_origin(db)))
{
dns_rdataset_disassociate(rdataset);
- if (dns_rdataset_isassociated(sigrdataset)) {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(sigrdataset);
skip++;
dns_name_getlabelsequence(qname, skip, labels - skip,
&name);
ttl = ISC_MIN(rdataset.ttl, soa.minimum);
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
qtype, DNS_DBFIND_NOZONECUT, client->inner.now,
&node, found, &cm, &ci, &trdataset, NULL);
if (result == DNS_R_NXRRSET || result == DNS_R_NCACHENXRRSET) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(&trdataset);
goto nxrrset;
} else if (result != ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
CTRACE(ISC_LOG_DEBUG(3), "redirect: found data: done");
dns_name_copy(found, name);
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
if (dns_rdataset_isassociated(&trdataset)) {
dns_rdataset_clone(&trdataset, rdataset);
dns_rdataset_disassociate(&trdataset);
client->inner.now, &node, found, &cm, &ci,
&trdataset, NULL);
if (result == DNS_R_NXRRSET || result == DNS_R_NCACHENXRRSET) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(&trdataset);
goto nxrrset;
} else if (result == ISC_R_NOTFOUND || result == DNS_R_DELEGATION) {
/*
* Cleanup.
*/
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
}
return ISC_R_NOTFOUND;
} else if (result != ISC_R_SUCCESS) {
- if (dns_rdataset_isassociated(&trdataset)) {
- dns_rdataset_disassociate(&trdataset);
- }
+ dns_rdataset_cleanup(&trdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
RUNTIME_CHECK(result == ISC_R_SUCCESS);
dns_name_copy(found, name);
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
if (dns_rdataset_isassociated(&trdataset)) {
dns_rdataset_clone(&trdataset, rdataset);
dns_rdataset_disassociate(&trdataset);
*/
static void
qctx_clean(query_ctx_t *qctx) {
- if (qctx->rdataset != NULL && dns_rdataset_isassociated(qctx->rdataset))
- {
- dns_rdataset_disassociate(qctx->rdataset);
- }
- if (qctx->sigrdataset != NULL &&
- dns_rdataset_isassociated(qctx->sigrdataset))
- {
- dns_rdataset_disassociate(qctx->sigrdataset);
- }
+ dns_rdataset_cleanup(qctx->rdataset);
+ dns_rdataset_cleanup(qctx->sigrdataset);
if (qctx->db != NULL && qctx->node != NULL) {
dns_db_detachnode(&qctx->node);
}
*/
if (qctx->dns64 && qctx->rpz) {
dns_name_copy(qctx->client->query.qname, qctx->fname);
- if (qctx->sigrdataset != NULL &&
- dns_rdataset_isassociated(qctx->sigrdataset))
- {
- dns_rdataset_disassociate(qctx->sigrdataset);
- }
+ dns_rdataset_cleanup(qctx->sigrdataset);
}
if (!qctx->is_zone) {
* the node by iterating later,
* and set the TTL then.
*/
- if (dns_rdataset_isassociated(qctx->rdataset)) {
- dns_rdataset_disassociate(
- qctx->rdataset);
- }
+ dns_rdataset_cleanup(qctx->rdataset);
} else {
/*
* We will add this rdataset.
if (neg == NULL) {
neg = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(neg)) {
- dns_rdataset_disassociate(neg);
+ } else {
+ dns_rdataset_cleanup(neg);
}
if (negsig == NULL) {
negsig = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(negsig)) {
- dns_rdataset_disassociate(negsig);
+ } else {
+ dns_rdataset_cleanup(negsig);
}
result = dns_rdataset_getclosest(qctx->noqname, fname, neg, negsig);
dbuf = ns_client_getnamebuf(client);
fname = ns_client_newname(client, dbuf, &b);
dns_fixedname_init(&fixed);
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
- if (dns_rdataset_isassociated(sigrdataset)) {
- dns_rdataset_disassociate(sigrdataset);
- }
+ dns_rdataset_cleanup(rdataset);
+ dns_rdataset_cleanup(sigrdataset);
name = dns_fixedname_name(&qctx->dsname);
query_findclosestnsec3(name, qctx->db, qctx->version, client, rdataset,
sigrdataset, fname, true,
done = true;
cleanup:
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
- if (dns_rdataset_isassociated(&sigrdataset)) {
- dns_rdataset_disassociate(&sigrdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
+ dns_rdataset_cleanup(&sigrdataset);
if (soardataset != NULL) {
ns_client_putrdataset(qctx->client, &soardataset);
}
query_addrrset(qctx, &aname, &rdataset, NULL, NULL, DNS_SECTION_ANSWER);
if (rdataset != NULL) {
- if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
- }
+ dns_rdataset_cleanup(rdataset);
dns_message_puttemprdataset(client->message, &rdataset);
}
if (aname != NULL) {
if (rdataset == NULL) {
rdataset = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
+ } else {
+ dns_rdataset_cleanup(rdataset);
}
if (sigrdataset == NULL) {
sigrdataset = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(sigrdataset)) {
- dns_rdataset_disassociate(sigrdataset);
+ } else {
+ dns_rdataset_cleanup(sigrdataset);
}
/*
if (rdataset == NULL) {
rdataset = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(rdataset)) {
- dns_rdataset_disassociate(rdataset);
+ } else {
+ dns_rdataset_cleanup(rdataset);
}
if (sigrdataset == NULL) {
sigrdataset = ns_client_newrdataset(client);
- } else if (dns_rdataset_isassociated(sigrdataset)) {
- dns_rdataset_disassociate(sigrdataset);
+ } else {
+ dns_rdataset_cleanup(sigrdataset);
}
/*
if (node != NULL) {
dns_db_detachnode(&node);
}
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
return result;
}
foundname, &rdataset, NULL);
assert_int_equal(result, DNS_R_NXDOMAIN);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
if (node != NULL) {
dns_db_detachnode(&node);
}
*/
assert_true(res == DNS_R_NXRRSET || res == DNS_R_NXDOMAIN);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_rdataset_init(&rdataset);
check_assertion((void)dns_db_find(db1, dns_rootname, v2,
&rdataset, NULL);
assert_int_equal(res, ISC_R_NOTFOUND);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_rdataset_init(&rdataset);
check_assertion(dns_db_findrdataset(db1, node, v2, dns_rdatatype_soa, 0,
res = dns_db_subtractrdataset(db1, node, v1, &rdataset, 0, NULL);
assert_int_equal(res, DNS_R_UNCHANGED);
- if (dns_rdataset_isassociated(&rdataset)) {
- dns_rdataset_disassociate(&rdataset);
- }
+ dns_rdataset_cleanup(&rdataset);
dns_rdataset_init(&rdataset);
dns_rdatalist_tordataset(&rdatalist, &rdataset);