From: Grigorii Demidov Date: Wed, 17 Jan 2018 12:50:23 +0000 (+0100) Subject: layer/iterate: forwarding; repeat query to upstream if SERVFAIL\REFUSE has been received X-Git-Tag: v2.0.0~26^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bea885a3d914e48e38b66e259414e52cbfd12683;p=thirdparty%2Fknot-resolver.git layer/iterate: forwarding; repeat query to upstream if SERVFAIL\REFUSE has been received --- 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; } }