mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 05:57:52 +00:00
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.
This commit is contained in:
parent
011e9418ce
commit
af0b8d0ba8
@ -9655,25 +9655,26 @@ rctx_badserver(respctx_t *rctx, isc_result_t result) {
|
||||
*/
|
||||
static isc_result_t
|
||||
rctx_lameserver(respctx_t *rctx) {
|
||||
isc_result_t result;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
fetchctx_t *fctx = rctx->fctx;
|
||||
resquery_t *query = rctx->query;
|
||||
|
||||
if (fctx->res->lame_ttl == 0 || ISFORWARDER(query->addrinfo) ||
|
||||
!is_lame(fctx, query->rmessage))
|
||||
{
|
||||
if (ISFORWARDER(query->addrinfo) || !is_lame(fctx, query->rmessage)) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
inc_stats(fctx->res, dns_resstatscounter_lame);
|
||||
log_lame(fctx, query->addrinfo);
|
||||
result = dns_adb_marklame(fctx->adb, query->addrinfo, fctx->name,
|
||||
fctx->type, rctx->now + fctx->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 (fctx->res->lame_ttl != 0) {
|
||||
result = dns_adb_marklame(fctx->adb, query->addrinfo,
|
||||
fctx->name, fctx->type,
|
||||
rctx->now + fctx->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));
|
||||
}
|
||||
}
|
||||
rctx->broken_server = DNS_R_LAME;
|
||||
rctx->next_server = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user