]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Deleting cookies from EDNS OPTs before adding new ones.
authorKarel Slany <karel.slany@nic.cz>
Wed, 20 Jul 2016 12:57:45 +0000 (14:57 +0200)
committerOndřej Surý <ondrej@sury.org>
Thu, 11 Aug 2016 12:06:45 +0000 (14:06 +0200)
lib/cookies/helper.c

index cf4360e964f333a5fc911aeb8f5a7ce1780644a8..6f8616170031f9029b0d0ca0e366c7577a8a9891 100644 (file)
@@ -66,8 +66,8 @@ static int opt_rr_add_cookie(knot_rrset_t *opt_rr, uint8_t *data,
        uint16_t cookies_size = data_len;
        uint8_t *cookies_data = NULL;
 
-       ret = knot_edns_reserve_option(opt_rr, KNOT_EDNS_OPTION_COOKIE,
-                                      cookies_size, &cookies_data, mm);
+       ret = knot_edns_reserve_unique_option(opt_rr, KNOT_EDNS_OPTION_COOKIE,
+                                             cookies_size, &cookies_data, mm);
        if (ret != KNOT_EOK) {
                return kr_error(EINVAL);
        }
@@ -195,8 +195,10 @@ int kr_answer_write_cookie(const struct knot_sc_private *srvr_data,
                return kr_error(EINVAL);
        }
 
-       int ret = knot_edns_reserve_option(pkt->opt_rr, KNOT_EDNS_OPTION_COOKIE,
-                                          cookie_len, &cookie, &pkt->mm);
+       int ret = knot_edns_reserve_unique_option(pkt->opt_rr,
+                                                 KNOT_EDNS_OPTION_COOKIE,
+                                                 cookie_len, &cookie,
+                                                 &pkt->mm);
        if (ret != KNOT_EOK) {
                return kr_error(ENOMEM);
        }