]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
layer/iterate, layer/pktcache: fix dupplicate records in replies
authorGrigorii Demidov <grigorii.demidov@nic.cz>
Tue, 17 May 2016 08:45:11 +0000 (10:45 +0200)
committerGrigorii Demidov <grigorii.demidov@nic.cz>
Tue, 17 May 2016 08:45:11 +0000 (10:45 +0200)
lib/layer/iterate.c
lib/layer/pktcache.c

index 99abc54832327fedde9177312aa368b20263c173..0b3d6a5021902aef5eaf495f62368a662ebabee2 100644 (file)
@@ -415,17 +415,14 @@ static int process_answer(knot_pkt_t *pkt, struct kr_request *req)
                                DEBUG_MSG("<= too long cname chain\n");
                                return KNOT_STATE_FAIL;
                        }
-                       /* If secure, don't use pending_cname immediately.
-                        * There are can be RRSIG for "old" cname.
+                       /* Don't use pending_cname immediately.
+                        * There are can be records for "old" cname.
                         */
                        if (query->flags & QUERY_DNSSEC_WANT) {
                                /* Follow chain only within current cut (if secure). */
                                if (pending_cname && !knot_dname_in(query->zone_cut.name, pending_cname)) {
                                        pending_cname = NULL;
                                }
-                       } else {
-                               /* Try to find next cname */
-                               cname = pending_cname;
                        }
                }
        }
index 205653ce76065816ee7e952474222736e6d1e733..25cb92175f7017ca284bc26dadb9f87c6fb7ad02 100644 (file)
@@ -219,7 +219,7 @@ static int pktcache_stash(knot_layer_t *ctx, knot_pkt_t *pkt)
        }
 
        /* Set cache flags */
-       if (qry->flags & QUERY_DNSSEC_WANT) {
+       if (qry->flags & QUERY_DNSSEC_WEXPAND) {
                header.flags |= KR_CACHE_FLAG_WCARD_PROOF;
        }