From bea885a3d914e48e38b66e259414e52cbfd12683 Mon Sep 17 00:00:00 2001 From: Grigorii Demidov Date: Wed, 17 Jan 2018 13:50:23 +0100 Subject: [PATCH] layer/iterate: forwarding; repeat query to upstream if SERVFAIL\REFUSE has been received --- lib/layer/iterate.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c index 9a9d31140..7da28b566 100644 --- a/lib/layer/iterate.c +++ b/lib/layer/iterate.c @@ -935,7 +935,7 @@ static int resolve(kr_layer_t *ctx, knot_pkt_t *pkt) break; /* OK */ case KNOT_RCODE_REFUSED: case KNOT_RCODE_SERVFAIL: { - if (query->flags.STUB || query->flags.FORWARD) { + if (query->flags.STUB) { /* Pass through in stub mode */ break; } @@ -945,7 +945,9 @@ static int resolve(kr_layer_t *ctx, knot_pkt_t *pkt) query->fails = 0; /* Reset per-query counter. */ return resolve_error(pkt, req); } else { - query->flags.NO_MINIMIZE = true; /* Drop minimisation as a safe-guard. */ + if (!query->flags.FORWARD) { + query->flags.NO_MINIMIZE = true; /* Drop minimisation as a safe-guard. */ + } return KR_STATE_CONSUME; } } -- 2.47.2