]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
lib/resolve: forward +cd in stub mode; minor bugfix in debug output
authorGrigorii Demidov <grigorii.demidov@nic.cz>
Tue, 28 Feb 2017 12:30:25 +0000 (13:30 +0100)
committerGrigorii Demidov <grigorii.demidov@nic.cz>
Tue, 28 Feb 2017 12:30:25 +0000 (13:30 +0100)
lib/resolve.c
lib/utils.c

index cfa8ed7ef43b356adbb254fe04649bac7cfa8b5c..fe55019c52c37d104d99df5b65b11075dcd02c08 100644 (file)
@@ -560,8 +560,12 @@ static int query_finalize(struct kr_request *request, struct kr_query *qry, knot
                        /* Stub resolution (ask for +rd and +do) */
                        if (qry->flags & QUERY_STUB) {
                                knot_wire_set_rd(pkt->wire);
-                               if (knot_pkt_has_dnssec(request->answer))
+                               if (knot_pkt_has_dnssec(request->answer)) {
                                        knot_edns_set_do(pkt->opt_rr);
+                               }
+                               if (knot_wire_get_cd(request->answer->wire)) {
+                                       knot_wire_set_cd(pkt->wire);
+                               }
                        /* Full resolution (ask for +cd and +do) */
                        } else if (qry->flags & QUERY_DNSSEC_WANT) {
                                knot_edns_set_do(pkt->opt_rr);
index a60b62438cacfd892993af3ebb827d37901c358c..6795a79b3e9d0d2c6d15c5354f66584b0d719e7e 100644 (file)
@@ -582,8 +582,8 @@ static void flags_to_str(char *dst, const knot_pkt_t *pkt, size_t maxlen)
                {knot_wire_get_rd, "rd"},
                {knot_wire_get_ra, "ra"},
                {knot_wire_get_tc, "tc"},
-               {knot_wire_get_cd, "cd"},
-               {knot_wire_get_ad, "ad"}
+               {knot_wire_get_ad, "ad"},
+               {knot_wire_get_cd, "cd"}
        };
        for (int i = 0; i < 7; ++i) {
                if (!flag[i].get(pkt->wire)) {
@@ -595,7 +595,7 @@ static void flags_to_str(char *dst, const knot_pkt_t *pkt, size_t maxlen)
                        return;
                }
                offset += ret;
-               maxlen -= offset;
+               maxlen -= ret;
        }
        dst[offset] = 0;
 }