From: Ondřej Surý Date: Fri, 24 Sep 2021 07:48:50 +0000 (+0200) Subject: Enable lame response detection even with disabled lame cache X-Git-Tag: v9.11.36~2^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b4088e11eebf944a66d489b353d892004306a65f;p=thirdparty%2Fbind9.git Enable lame response detection even with disabled lame cache Previously, when lame cache would be disabled by setting lame-ttl to 0, it would also disable lame answer detection. In this commit, we enable the lame response detection even when the lame cache is disabled. This enables stopping answer processing early rather than going through the whole answer processing flow. --- diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 8175f7918bc..b34cb12b739 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -8489,18 +8489,20 @@ resquery_response(isc_task_t *task, isc_event_t *event) { /* * Is the server lame? */ - if (res->lame_ttl != 0 && !ISFORWARDER(query->addrinfo) && - is_lame(fctx, rmessage)) { + if (!ISFORWARDER(query->addrinfo) && is_lame(fctx, rmessage)) { inc_stats(res, dns_resstatscounter_lame); log_lame(fctx, query->addrinfo); - result = dns_adb_marklame(fctx->adb, query->addrinfo, - &fctx->name, fctx->type, - now + res->lame_ttl); - if (result != ISC_R_SUCCESS) - isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, - DNS_LOGMODULE_RESOLVER, ISC_LOG_ERROR, - "could not mark server as lame: %s", - isc_result_totext(result)); + if (res->lame_ttl != 0) { + result = dns_adb_marklame(fctx->adb, query->addrinfo, + &fctx->name, fctx->type, + now + res->lame_ttl); + if (result != ISC_R_SUCCESS) { + isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, + DNS_LOGMODULE_RESOLVER, ISC_LOG_ERROR, + "could not mark server as lame: %s", + isc_result_totext(result)); + } + } broken_server = DNS_R_LAME; keep_trying = true; FCTXTRACE("lame server");