}
validator_log(val, ISC_LOG_DEBUG(3), "in validator_callback_dnskey");
- if (result == ISC_R_SUCCESS) {
+ if (result != ISC_R_SUCCESS) {
+ validator_log(val, ISC_LOG_DEBUG(3),
+ "validator_callback_dnskey: got %s",
+ isc_result_totext(result));
+ }
+
+ switch (result) {
+ case ISC_R_SUCCESS:
validator_log(val, ISC_LOG_DEBUG(3), "keyset with trust %s",
dns_trust_totext(val->frdataset.trust));
/*
} else {
result = validate_async_run(val, resume_answer);
}
- } else {
- validator_log(val, ISC_LOG_DEBUG(3),
- "validator_callback_dnskey: got %s",
- isc_result_totext(result));
- if (result != DNS_R_BROKENCHAIN) {
- expire_rdatasets(val);
- result = create_fetch(val, &val->siginfo->signer,
- dns_rdatatype_dnskey, NULL, NULL,
- fetch_callback_dnskey,
- "validator_callback_dnskey");
- if (result == ISC_R_SUCCESS) {
- result = DNS_R_WAIT;
- }
+ break;
+ case ISC_R_CANCELED: /* Validation was canceled */
+ case ISC_R_SHUTTINGDOWN: /* Server shutting down */
+ case ISC_R_QUOTA: /* Validation fails quota reached */
+ val->attributes |= subvalidator->attributes &
+ (VALATTR_MAXVALIDATIONS |
+ VALATTR_MAXVALIDATIONFAILS);
+ break;
+ case DNS_R_BROKENCHAIN:
+ break;
+ default:
+ expire_rdatasets(val);
+ result = create_fetch(val, &val->siginfo->signer,
+ dns_rdatatype_dnskey, NULL, NULL,
+ fetch_callback_dnskey,
+ "validator_callback_dnskey");
+ if (result == ISC_R_SUCCESS) {
+ result = DNS_R_WAIT;
}
+ break;
}
cleanup:
}
validator_log(val, ISC_LOG_DEBUG(3), "in validator_callback_ds");
- if (result == ISC_R_SUCCESS) {
- bool have_dsset;
- dns_name_t *name;
+ if (result != ISC_R_SUCCESS) {
+ validator_log(val, ISC_LOG_DEBUG(3),
+ "validator_callback_ds: got %s",
+ isc_result_totext(result));
+ }
+
+ switch (result) {
+ case ISC_R_SUCCESS:
validator_log(val, ISC_LOG_DEBUG(3), "%s with trust %s",
val->frdataset.type == dns_rdatatype_ds
? "dsset"
: "ds non-existence",
dns_trust_totext(val->frdataset.trust));
- have_dsset = (val->frdataset.type == dns_rdatatype_ds);
- name = dns_fixedname_name(&val->fname);
+ bool have_dsset = (val->frdataset.type == dns_rdatatype_ds);
+ dns_name_t *name = dns_fixedname_name(&val->fname);
if ((val->attributes & VALATTR_INSECURITY) != 0 &&
val->frdataset.covers == dns_rdatatype_ds &&
} else {
result = validate_async_run(val, validate_dnskey);
}
- } else {
- validator_log(val, ISC_LOG_DEBUG(3),
- "validator_callback_ds: got %s",
- isc_result_totext(result));
- if (result != DNS_R_BROKENCHAIN) {
- expire_rdatasets(val);
- result = create_ds_fetch(val, val->name,
- fetch_callback_ds,
- "validator_callback_ds");
- if (result == ISC_R_SUCCESS) {
- result = DNS_R_WAIT;
- }
+ break;
+ case ISC_R_CANCELED: /* Validation was canceled */
+ case ISC_R_SHUTTINGDOWN: /* Server shutting down */
+ case ISC_R_QUOTA: /* Validation fails quota reached */
+ val->attributes |= subvalidator->attributes &
+ (VALATTR_MAXVALIDATIONS |
+ VALATTR_MAXVALIDATIONFAILS);
+ break;
+ case DNS_R_BROKENCHAIN:
+ break;
+ default:
+ expire_rdatasets(val);
+ result = create_ds_fetch(val, val->name, fetch_callback_ds,
+ "validator_callback_ds");
+ if (result == ISC_R_SUCCESS) {
+ result = DNS_R_WAIT;
}
+ break;
}
cleanup:
validator_callback_cname(void *arg) {
dns_validator_t *subvalidator = (dns_validator_t *)arg;
dns_validator_t *val = subvalidator->parent;
- isc_result_t result;
- isc_result_t eresult = subvalidator->result;
+ isc_result_t result = subvalidator->result;
INSIST((val->attributes & VALATTR_INSECURITY) != 0);
}
validator_log(val, ISC_LOG_DEBUG(3), "in validator_callback_cname");
- if (eresult == ISC_R_SUCCESS) {
+ if (result != ISC_R_SUCCESS) {
+ validator_log(val, ISC_LOG_DEBUG(3),
+ "validator_callback_cname: got %s",
+ isc_result_totext(result));
+ }
+ switch (result) {
+ case ISC_R_SUCCESS:
validator_log(val, ISC_LOG_DEBUG(3), "cname with trust %s",
dns_trust_totext(val->frdataset.trust));
result = proveunsecure(val, false, false, true);
- } else {
- if (eresult != DNS_R_BROKENCHAIN) {
- expire_rdatasets(val);
- }
- validator_log(val, ISC_LOG_DEBUG(3),
- "validator_callback_cname: got %s",
- isc_result_totext(eresult));
+ break;
+ case ISC_R_CANCELED: /* Validation was canceled */
+ case ISC_R_SHUTTINGDOWN: /* Server shutting down */
+ case ISC_R_QUOTA: /* Validation fails quota reached */
+ val->attributes |= subvalidator->attributes &
+ (VALATTR_MAXVALIDATIONS |
+ VALATTR_MAXVALIDATIONFAILS);
+ break;
+ case DNS_R_BROKENCHAIN:
+ break;
+ default:
+ expire_rdatasets(val);
result = DNS_R_BROKENCHAIN;
+ break;
}
cleanup:
dns_validator_t *subvalidator = (dns_validator_t *)arg;
dns_validator_t *val = subvalidator->parent;
dns_rdataset_t *rdataset = subvalidator->rdataset;
- isc_result_t result;
- isc_result_t eresult = subvalidator->result;
+ isc_result_t result = subvalidator->result;
bool exists, data;
val->subvalidator = NULL;
}
validator_log(val, ISC_LOG_DEBUG(3), "in validator_callback_nsec");
- if (eresult == ISC_R_SUCCESS) {
+ if (result != ISC_R_SUCCESS) {
+ validator_log(val, ISC_LOG_DEBUG(3),
+ "validator_callback_nsec: got %s",
+ isc_result_totext(result));
+ }
+ switch (result) {
+ case ISC_R_SUCCESS: {
dns_name_t **proofs = val->proofs;
dns_name_t *wild = dns_fixedname_name(&val->wild);
}
result = validate_nx(val, true);
- } else {
- validator_log(val, ISC_LOG_DEBUG(3),
- "validator_callback_nsec: got %s",
- isc_result_totext(eresult));
- switch (eresult) {
- case ISC_R_CANCELED:
- case ISC_R_SHUTTINGDOWN:
- case ISC_R_QUOTA:
- val->attributes |= subvalidator->attributes &
- (VALATTR_MAXVALIDATIONS |
- VALATTR_MAXVALIDATIONFAILS);
- result = eresult;
- break;
- case DNS_R_BROKENCHAIN:
- val->authfail++;
- FALLTHROUGH;
- default:
- if (val->nxset != NULL) {
- val->nxset->attributes.ncache = false;
- }
- result = validate_nx(val, true);
- break;
+ break;
+ }
+ case ISC_R_CANCELED: /* Validation was canceled */
+ case ISC_R_SHUTTINGDOWN: /* Server shutting down */
+ case ISC_R_QUOTA: /* Validation fails quota reached */
+ val->attributes |= subvalidator->attributes &
+ (VALATTR_MAXVALIDATIONS |
+ VALATTR_MAXVALIDATIONFAILS);
+ break;
+ case DNS_R_BROKENCHAIN:
+ val->authfail++;
+ FALLTHROUGH;
+ default:
+ if (val->nxset != NULL) {
+ val->nxset->attributes.ncache = false;
}
+ result = validate_nx(val, true);
+ break;
}
cleanup: