From: Vladimír Čunát Date: Mon, 27 Aug 2018 15:10:50 +0000 (+0200) Subject: kr_request: remove ::additional X-Git-Tag: v4.2.0~3^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b902adaa561b9c4c86f87aa148c79289f33e4f0b;p=thirdparty%2Fknot-resolver.git kr_request: remove ::additional Somehow I didn't notice this field when adding ::add_selected. We probably never put anything into answer's ADDITIONAL, so noone's noticed a problem until now. --- diff --git a/NEWS b/NEWS index 56320ddad..77ae26b7f 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,12 @@ Bugfixes - tls_client: fix issue with TLS session resumption (#489) +Module API changes +------------------ +- kr_request::add_selected is now really put into answer, + instead of the "duplicate" ::additional field (#490) + + Knot Resolver 4.1.0 (2019-07-10) ================================ diff --git a/daemon/lua/kres-gen.lua b/daemon/lua/kres-gen.lua index 2565ac3f1..07647cc84 100644 --- a/daemon/lua/kres-gen.lua +++ b/daemon/lua/kres-gen.lua @@ -126,11 +126,6 @@ struct kr_qflags { _Bool NO_NS_FOUND : 1; _Bool PKT_IS_SANE : 1; }; -typedef struct { - knot_rrset_t **at; - size_t len; - size_t cap; -} rr_array_t; struct ranked_rr_array_entry { uint32_t qry_uid; uint8_t rank; @@ -192,7 +187,6 @@ struct kr_request { ranked_rr_array_t answ_selected; ranked_rr_array_t auth_selected; ranked_rr_array_t add_selected; - rr_array_t additional; _Bool answ_validated; _Bool auth_validated; uint8_t rank; diff --git a/daemon/lua/kres-gen.sh b/daemon/lua/kres-gen.sh index b0ac3de15..c28d346f2 100755 --- a/daemon/lua/kres-gen.sh +++ b/daemon/lua/kres-gen.sh @@ -103,7 +103,6 @@ ${CDEFS} ${LIBKRES} types <<-EOF trie_t # libkres struct kr_qflags - rr_array_t struct ranked_rr_array_entry ranked_rr_array_entry_t ranked_rr_array_t diff --git a/lib/resolve.c b/lib/resolve.c index f80f92a40..6b411f770 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -461,18 +461,6 @@ static int answer_prepare(struct kr_request *req, knot_pkt_t *query) return kr_ok(); } -/** @return error code, ignoring if forced to truncate the packet. */ -static int write_extra_records(const rr_array_t *arr, uint16_t reorder, knot_pkt_t *answer) -{ - for (size_t i = 0; i < arr->len; ++i) { - int err = knot_pkt_put_rotate(answer, 0, arr->at[i], reorder, KNOT_PF_NOTRUNC); - if (err != KNOT_EOK) { - return err == KNOT_ESPACE ? kr_ok() : kr_error(err); - } - } - return kr_ok(); -} - /** * @param all_secure optionally &&-combine security of written RRs into its value. * (i.e. if you pass a pointer to false, it will always remain) @@ -658,7 +646,8 @@ static void answer_finalize(struct kr_request *request) || write_extra_ranked_records(&request->auth_selected, reorder, answer, &secure, NULL) || knot_pkt_begin(answer, KNOT_ADDITIONAL) - || write_extra_records(&request->additional, reorder, answer) + || write_extra_ranked_records(&request->add_selected, reorder, + answer, NULL/*not relevant to AD*/, NULL) || answer_append_edns(request) ) { @@ -737,7 +726,6 @@ int kr_resolve_begin(struct kr_request *request, struct kr_context *ctx, knot_pk request->options = ctx->options; request->state = KR_STATE_CONSUME; request->current_query = NULL; - array_init(request->additional); array_init(request->answ_selected); array_init(request->auth_selected); array_init(request->add_selected); diff --git a/lib/resolve.h b/lib/resolve.h index df583a938..728466f20 100644 --- a/lib/resolve.h +++ b/lib/resolve.h @@ -214,7 +214,6 @@ struct kr_request { ranked_rr_array_t answ_selected; ranked_rr_array_t auth_selected; ranked_rr_array_t add_selected; - rr_array_t additional; bool answ_validated; /**< internal to validator; beware of caching, etc. */ bool auth_validated; /**< see answ_validated ^^ ; TODO */ diff --git a/lib/utils.h b/lib/utils.h index 40ebfade3..61127ce0b 100644 --- a/lib/utils.h +++ b/lib/utils.h @@ -187,7 +187,6 @@ static inline long time_diff(struct timeval *begin, struct timeval *end) { /** @cond internal Array types */ struct kr_context; -typedef array_t(knot_rrset_t *) rr_array_t; struct ranked_rr_array_entry { uint32_t qry_uid; uint8_t rank; /**< enum kr_rank */