summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVladimír Čunát <vladimir.cunat@nic.cz>2023-01-19 15:45:09 +0100
committerAleš Mrázek <ales.mrazek@nic.cz>2023-01-26 13:06:39 +0100
commita9528e334b8df32e419c4430cb556e742b9e8199 (patch)
tree3a2cc57ed5052a1c35eb1ed42b5487728985a64c /lib
parentMerge !1379: tests/integration/deckard: update to version with --forked (diff)
downloadknot-resolver-a9528e334b8df32e419c4430cb556e742b9e8199.tar.xz
knot-resolver-a9528e334b8df32e419c4430cb556e742b9e8199.zip
daemon/worker: call server_selection.error() more
On most fundamental issues like DNS message not parsing, we did not call this. Selection needs such information.
Diffstat (limited to 'lib')
-rw-r--r--lib/layer/iterate.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c
index 98202a18..edc666eb 100644
--- a/lib/layer/iterate.c
+++ b/lib/layer/iterate.c
@@ -1055,6 +1055,8 @@ static int resolve(kr_layer_t *ctx, knot_pkt_t *pkt)
/* Check for packet processing errors first.
* Note - we *MUST* check if it has at least a QUESTION,
* otherwise it would crash on accessing QNAME. */
+ /* TODO: some of these erros are probably unreachable
+ * thanks to getting caught earlier, in particular in worker_submit() */
if (pkt->parsed <= KNOT_WIRE_HEADER_SIZE) {
if (pkt->parsed == KNOT_WIRE_HEADER_SIZE && knot_wire_get_rcode(pkt->wire) == KNOT_RCODE_FORMERR) {
/* This is a special case where we get valid header with FORMERR and nothing else.