From fbbec0a15b1d053ebb8561becad5b4494606e450 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 4 Apr 2018 17:42:35 +0200 Subject: [PATCH] iterate: only pick RRs from the IN class --- lib/layer/iterate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c index 7a4ad83a9..f0823557c 100644 --- a/lib/layer/iterate.c +++ b/lib/layer/iterate.c @@ -356,7 +356,7 @@ static int pick_authority(knot_pkt_t *pkt, struct kr_request *req, bool to_wire) for (unsigned i = 0; i < ns->count; ++i) { const knot_rrset_t *rr = knot_pkt_rr(ns, i); - if (!knot_dname_in(zonecut_name, rr->owner)) { + if (rr->rclass != KNOT_CLASS_IN || !knot_dname_in(zonecut_name, rr->owner)) { continue; } uint8_t rank = get_initial_rank(rr, qry, false, @@ -492,7 +492,8 @@ static int unroll_cname(knot_pkt_t *pkt, struct kr_request *req, bool referral, const bool type_OK = rr->type == query->stype || type == query->stype || type == KNOT_RRTYPE_CNAME || type == KNOT_RRTYPE_DNAME; /* TODO: actually handle DNAMEs */ - if (!type_OK || !knot_dname_is_equal(rr->owner, cname)) { + if (rr->rclass != KNOT_CLASS_IN || !type_OK + || !knot_dname_is_equal(rr->owner, cname)) { continue; } -- 2.47.2