From: Vladimír Čunát Date: Wed, 10 Jul 2019 08:25:49 +0000 (+0200) Subject: lib/resolve answer_finalize: simplify a bit of code X-Git-Tag: v4.2.0~3^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aaef1eca5c53988366a669b8230c192329b12ab3;p=thirdparty%2Fknot-resolver.git lib/resolve answer_finalize: simplify a bit of code --- diff --git a/lib/resolve.c b/lib/resolve.c index 888a0a101..f80f92a40 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -648,39 +648,20 @@ static void answer_finalize(struct kr_request *request) secure = false; /* the last answer is insecure due to opt-out */ } + /* Write all RRsets meant for the answer. */ const uint16_t reorder = last ? last->reorder : 0; bool answ_all_cnames = false/*arbitrary*/; - if (request->answ_selected.len > 0) { - assert(answer->current <= KNOT_ANSWER); - /* Write answer records. */ - if (answer->current < KNOT_ANSWER) { - knot_pkt_begin(answer, KNOT_ANSWER); - } - if (write_extra_ranked_records(&request->answ_selected, reorder, - answer, &secure, &answ_all_cnames)) - { - answer_fail(request); - return; - } - } - - /* Write authority records. */ - if (answer->current < KNOT_AUTHORITY) { - knot_pkt_begin(answer, KNOT_AUTHORITY); - } - if (write_extra_ranked_records(&request->auth_selected, reorder, - answer, &secure, NULL)) { - answer_fail(request); - return; - } - /* Write additional records. */ - knot_pkt_begin(answer, KNOT_ADDITIONAL); - if (write_extra_records(&request->additional, reorder, answer)) { - answer_fail(request); - return; - } - - if (answer_append_edns(request)) { + if (knot_pkt_begin(answer, KNOT_ANSWER) + || write_extra_ranked_records(&request->answ_selected, reorder, + answer, &secure, &answ_all_cnames) + || knot_pkt_begin(answer, KNOT_AUTHORITY) + || write_extra_ranked_records(&request->auth_selected, reorder, + answer, &secure, NULL) + || knot_pkt_begin(answer, KNOT_ADDITIONAL) + || write_extra_records(&request->additional, reorder, answer) + || answer_append_edns(request) + ) + { answer_fail(request); return; }