From: Vladimír Čunát Date: Fri, 7 Apr 2017 13:56:25 +0000 (+0200) Subject: move a decision from validator to iterator X-Git-Tag: v1.3.0~23^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df2ff65d7b6925d8e4360e0167b0649a72243225;p=thirdparty%2Fknot-resolver.git move a decision from validator to iterator NS records from AUTHORITY aren't validated. The iterator seems a better place, as that's where delegations are handled, etc. --- diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c index b166de229..38fa1a56b 100644 --- a/lib/layer/iterate.c +++ b/lib/layer/iterate.c @@ -303,7 +303,7 @@ static inline uint8_t get_initial_rank(const knot_rrset_t *rr, /* TODO: this classifier of authoritativity may not be perfect yet. */ return KR_RANK_INITIAL | KR_RANK_AUTH; } else { - return KR_RANK_INITIAL; + return rr->type == KNOT_RRTYPE_NS ? KR_RANK_OMIT : KR_RANK_INITIAL; } } diff --git a/lib/layer/validate.c b/lib/layer/validate.c index c4a54ce96..af5bb4b67 100644 --- a/lib/layer/validate.c +++ b/lib/layer/validate.c @@ -111,10 +111,7 @@ static int validate_section(kr_rrset_validation_ctx_t *vctx, knot_mm_t *pool) kr_rank_set(&entry->rank, KR_RANK_OMIT); continue; } - if ((rr->type == KNOT_RRTYPE_NS) && (vctx->section_id == KNOT_AUTHORITY)) { - kr_rank_set(&entry->rank, KR_RANK_OMIT); - continue; - } + validation_result = kr_rrset_validate(vctx, rr); if (validation_result == kr_ok()) { kr_rank_set(&entry->rank, KR_RANK_SECURE);