dns_rdataset_t neg = DNS_RDATASET_INIT, negsig = DNS_RDATASET_INIT;
isc_region_t r1 = { .base = NULL }, r2 = { .base = NULL };
- result = dns_rdataset_getnoqname(rdataset, &name, &neg, &negsig);
- RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ CHECK(dns_rdataset_getnoqname(rdataset, &name, &neg, &negsig));
CHECK(dns_rdataslab_fromrdataset(&neg, mctx, &r1, maxrrperset));
dns_slabheader_detach(&header);
}
}
- dns_rdataset_disassociate(&neg);
- dns_rdataset_disassociate(&negsig);
+ dns_rdataset_cleanup(&neg);
+ dns_rdataset_cleanup(&negsig);
return result;
}
REQUIRE(rdataset != NULL);
ISC_LIST_FOREACH(name->list, rdset, link) {
- if (rdset->rdclass != rdataset->rdclass) {
+ if (rdset->rdclass != rdataset->rdclass ||
+ !dns_rdatatype_isnsec(rdset->type))
+ {
continue;
}
- if (dns_rdatatype_isnsec(rdset->type)) {
- neg = rdset;
- }
- }
- if (neg == NULL) {
- return ISC_R_NOTFOUND;
- }
- ISC_LIST_FOREACH(name->list, rdset, link) {
- if (rdset->type == dns_rdatatype_rrsig &&
- rdset->covers == neg->type)
- {
- negsig = rdset;
+ ISC_LIST_FOREACH(name->list, sigset, link) {
+ if (sigset->type == dns_rdatatype_rrsig &&
+ sigset->covers == rdset->type)
+ {
+ neg = rdset;
+ negsig = sigset;
+ break;
+ }
}
}
- if (negsig == NULL) {
+ if (neg == NULL || negsig == NULL) {
return ISC_R_NOTFOUND;
}
rdataset->ttl = neg->ttl = negsig->ttl = ttl;
rdataset->attributes.noqname = true;
rdataset->rdlist.noqname = name;
+
return ISC_R_SUCCESS;
}
inc_stats(res, dns_resstatscounter_valsuccess);
if (val->proofs[DNS_VALIDATOR_NOQNAMEPROOF] != NULL) {
- result = dns_rdataset_addnoqname(
- val->rdataset, val->proofs[DNS_VALIDATOR_NOQNAMEPROOF]);
- RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ CHECK(dns_rdataset_addnoqname(
+ val->rdataset,
+ val->proofs[DNS_VALIDATOR_NOQNAMEPROOF]));
INSIST(val->sigrdataset != NULL);
val->sigrdataset->ttl = val->rdataset->ttl;
if (val->proofs[DNS_VALIDATOR_CLOSESTENCLOSER] != NULL) {
neg = ns_client_newrdataset(client);
negsig = ns_client_newrdataset(client);
- result = dns_rdataset_getnoqname(qctx->noqname, fname, neg, negsig);
- RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ CHECK(dns_rdataset_getnoqname(qctx->noqname, fname, neg, negsig));
query_addrrset(qctx, &fname, &neg, &negsig, dbuf,
DNS_SECTION_AUTHORITY);