"dsset with trust %s",
dns_trust_totext(rdataset->trust));
val->dsset = &val->frdataset;
- INSIST(val->keynode == NULL);
result = validate_dnskey(val);
if (result != DNS_R_WAIT) {
validator_done(val, result);
* We have a DS RRset.
*/
val->dsset = &val->frdataset;
- INSIST(val->keynode == NULL);
if ((DNS_TRUST_PENDING(val->frdataset.trust) ||
DNS_TRUST_ANSWER(val->frdataset.trust)) &&
dns_rdataset_isassociated(&val->fsigrdataset))
result = dns_keytable_find(val->keytable, val->event->name,
&keynode);
if (result == ISC_R_SUCCESS) {
- if (!dns_keynode_dsset(keynode, &val->fdsset)) {
- dns_keytable_detachkeynode(val->keytable,
- &keynode);
- } else {
+ if (dns_keynode_dsset(keynode, &val->fdsset)) {
val->dsset = &val->fdsset;
}
+ dns_keytable_detachkeynode(val->keytable, &keynode);
}
}
*/
result = get_dsset(val, val->event->name, &tresult);
if (result == ISC_R_COMPLETE) {
- if (tresult == DNS_R_WAIT) {
- /*
- * Keep the keynode attached so we don't
- * lose val->dsset.
- */
- val->keynode = keynode;
- }
-
result = tresult;
goto cleanup;
}
INSIST(val->dsset != NULL);
if (val->dsset->trust < dns_trust_secure) {
- INSIST(keynode == NULL);
result = markanswer(val, "validate_dnskey (2)", "insecure DS");
goto cleanup;
}
val->dsset = NULL;
dns_rdataset_disassociate(&val->fdsset);
}
- if (keynode != NULL) {
- val->dsset = NULL;
- dns_keytable_detachkeynode(val->keytable, &keynode);
- }
return (result);
}
dst_key_free(&val->key);
}
if (val->keytable != NULL) {
- if (val->keynode != NULL) {
- dns_keytable_detachkeynode(val->keytable,
- &val->keynode);
- }
dns_keytable_detach(&val->keytable);
}
if (val->subvalidator != NULL) {