continue;
}
- if (!kr_rank_test(entry->rank, KR_RANK_INITIAL)
- && !kr_rank_test(entry->rank, KR_RANK_MISMATCH)) {
- continue;
+ if (kr_rank_test(entry->rank, KR_RANK_OMIT)
+ || kr_rank_test(entry->rank, KR_RANK_SECURE)) {
+ continue; /* these are already OK */
}
if (rr->type == KNOT_RRTYPE_RRSIG) {
kr_rank_set(&entry->rank, KR_RANK_SECURE);
} else if (validation_result == kr_error(ENOENT)) {
/* no RRSIGs found */
- kr_rank_set(&entry->rank, KR_RANK_INSECURE);
+ kr_rank_set(&entry->rank, KR_RANK_MISSING);
vctx->err_cnt += 1;
} else {
kr_rank_set(&entry->rank, KR_RANK_BOGUS);
if (kr_rank_test(entry->rank, KR_RANK_MISMATCH)) {
invalid_entry = entry;
break;
- } else if (kr_rank_test(entry->rank, KR_RANK_INSECURE) &&
+ } else if (kr_rank_test(entry->rank, KR_RANK_MISSING) &&
!invalid_entry) {
invalid_entry = entry;
} else if (!kr_rank_test(entry->rank, KR_RANK_SECURE) &&
}
VERBOSE_MSG(qry, ">< cut changed (new signer), needs revalidation\n");
ret = KR_STATE_YIELD;
- } else if (kr_rank_test(invalid_entry->rank, KR_RANK_INSECURE)) {
+ } else if (kr_rank_test(invalid_entry->rank, KR_RANK_MISSING)) {
ret = rrsig_not_found(ctx, rr);
} else if (!kr_rank_test(invalid_entry->rank, KR_RANK_SECURE)) {
qry->flags |= QUERY_DNSSEC_BOGUS;
*/
enum kr_rank {
KR_RANK_INITIAL = 0, /**< Did not attempt to validate. */
- KR_RANK_OMIT = 1, /**< Do not attempt to validate. */
+ KR_RANK_OMIT = 1, /**< Do not attempt to validate. (And don't consider it a validation failure.) */
KR_RANK_INDET, /**< Unable to determine whether it should be secure. */
KR_RANK_BOGUS, /**< Ought to be secure but isn't. */
KR_RANK_MISMATCH,
+ KR_RANK_MISSING, /**< Unable to obtain a good signature. */
KR_RANK_INSECURE = 8, /**< Proven to be insecure. */