From: Štěpán Balážik Date: Fri, 6 Nov 2020 14:40:59 +0000 (+0100) Subject: WIP X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c4bf80d5abb8d09fc5273f171f660cda351c88f;p=thirdparty%2Fknot-resolver.git WIP --- diff --git a/lib/resolve.c b/lib/resolve.c index a3e3270f0..80f5372bd 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -1356,13 +1356,19 @@ int kr_resolve_produce(struct kr_request *request, struct kr_transport **transpo if (*transport == NULL) { /* Properly signal to serve_stale module. */ if (qry->flags.NO_NS_FOUND) { - ITERATE_LAYERS(request, qry, reset); - kr_rplan_pop(rplan, qry); + printf("Failed serve_stale.\n"); + if (qry->flags.NONAUTH) { + ITERATE_LAYERS(request, qry, reset); + kr_rplan_pop(rplan, qry); + } else { + return KR_STATE_FAIL; + } } else { /* FIXME: This is probably quite inefficient: * we go through the whole qr_task_step loop just because of the serve_stale * module which might not even be loaded. */ qry->flags.NO_NS_FOUND = true; + printf("Trying serve_stale.\n"); } return KR_STATE_PRODUCE; }