From: Grigorii Demidov Date: Mon, 26 Dec 2016 17:26:53 +0000 (+0100) Subject: rrcache: NS glue processing has been fixed X-Git-Tag: v1.2.0-rc1~41^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c1956cdfc93f6ea3fcc640cbaf80ce5402fc7d29;p=thirdparty%2Fknot-resolver.git rrcache: NS glue processing has been fixed --- diff --git a/lib/layer/rrcache.c b/lib/layer/rrcache.c index c84888af6..d47e7e216 100644 --- a/lib/layer/rrcache.c +++ b/lib/layer/rrcache.c @@ -308,9 +308,12 @@ static int stash_authority(struct kr_request *req, knot_pkt_t *pkt, map_t *stash } /* Look up glue records for NS */ if (rr->type == KNOT_RRTYPE_NS) { - const knot_dname_t *ns_name = knot_ns_name(&rr->rrs, 0); - if (qry->flags & QUERY_PERMISSIVE || knot_dname_in(qry->zone_cut.name, ns_name)) { - stash_glue(stash, pkt, ns_name, pool); + for (size_t j = 0; j < rr->rrs.rr_count; ++j) { + const knot_dname_t *ns_name = knot_ns_name(&rr->rrs, j); + if (qry->flags & QUERY_PERMISSIVE || + knot_dname_in(qry->zone_cut.name, ns_name)) { + stash_glue(stash, pkt, ns_name, pool); + } } } kr_rrmap_add(stash, rr, rank, pool);