]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
rrcache: NS glue processing has been fixed
authorGrigorii Demidov <grigorii.demidov@nic.cz>
Mon, 26 Dec 2016 17:26:53 +0000 (18:26 +0100)
committerOndřej Surý <ondrej@sury.org>
Wed, 11 Jan 2017 12:10:22 +0000 (13:10 +0100)
lib/layer/rrcache.c

index c84888af6659361c8406db8a615ac8c006604c64..d47e7e2166ba4a0d5b457c137cc01f5e50f239c8 100644 (file)
@@ -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);