From 7b197ffc862024a02012042763e9bd32996f20ab Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Vavru=C5=A1a?= Date: Thu, 21 May 2015 19:51:12 +0200 Subject: [PATCH] lib/resolve: set rcode before finishing overlay this fixes a bug where resolution failed, but the finish callbacks thought the answer is noerror --- lib/resolve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/resolve.c b/lib/resolve.c index 7de4f3c2a..29237e5e7 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -443,13 +443,13 @@ int kr_resolve_finish(struct kr_request *request, int state) state = KNOT_STATE_FAIL; } /* Error during procesing, internal failure */ - knot_overlay_finish(&request->overlay); if (state != KNOT_STATE_DONE) { knot_pkt_t *answer = request->answer; if (knot_wire_get_rcode(answer->wire) == KNOT_RCODE_NOERROR) { knot_wire_set_rcode(answer->wire, KNOT_RCODE_SERVFAIL); } } + knot_overlay_finish(&request->overlay); /* Clean up. */ knot_overlay_deinit(&request->overlay); request->overlay.state = KNOT_STATE_NOOP; -- 2.47.2