From: Štěpán Balážik Date: Thu, 4 Feb 2021 16:04:16 +0000 (+0100) Subject: iterate.c: remove workaround in process_authority X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fremove-process_authority-workaround;p=thirdparty%2Fknot-resolver.git iterate.c: remove workaround in process_authority AA means AA, we terminate the resolution. --- diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c index 94342cfb5..7812b24ed 100644 --- a/lib/layer/iterate.c +++ b/lib/layer/iterate.c @@ -398,27 +398,11 @@ static int process_authority(knot_pkt_t *pkt, struct kr_request *req) const knot_pktsection_t *ns = knot_pkt_section(pkt, KNOT_AUTHORITY); const knot_pktsection_t *an = knot_pkt_section(pkt, KNOT_ANSWER); -#ifdef STRICT_MODE /* AA, terminate resolution chain. */ if (knot_wire_get_aa(pkt->wire)) { return KR_STATE_CONSUME; } -#else - /* Work around servers sending back CNAME with different delegation and no AA. */ - if (an->count > 0 && ns->count > 0) { - const knot_rrset_t *rr = knot_pkt_rr(an, 0); - if (rr->type == KNOT_RRTYPE_CNAME) { - return KR_STATE_CONSUME; - } - /* Work around for these NSs which are authoritative both for - * parent and child and mixes data from both zones in single answer */ - if (knot_wire_get_aa(pkt->wire) && - (rr->type == qry->stype) && - (knot_dname_is_equal(rr->owner, qry->sname))) { - return KR_STATE_CONSUME; - } - } -#endif + /* Remember current bailiwick for NS processing. */ const knot_dname_t *current_zone_cut = qry->zone_cut.name; bool ns_record_exists = false;