From 04ff2672b5ace3462d2704a17936443cab4110ee Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Wed, 10 Apr 2024 17:06:01 +0200 Subject: [PATCH] - Fix to not reply serve expired unless enabled for cachedb. --- cachedb/cachedb.c | 5 +++-- doc/Changelog | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cachedb/cachedb.c b/cachedb/cachedb.c index 548ec198d..0cecea11d 100644 --- a/cachedb/cachedb.c +++ b/cachedb/cachedb.c @@ -737,12 +737,13 @@ static void cachedb_intcache_store(struct module_qstate* qstate, int msg_expired) { uint32_t store_flags = qstate->query_flags; + int serve_expired = qstate->env->cfg->serve_expired; if(qstate->env->cfg->serve_expired) store_flags |= DNSCACHE_STORE_ZEROTTL; if(!qstate->return_msg) return; - if(msg_expired) { + if(serve_expired && msg_expired) { /* Set TTLs to a value such that value + *env->now is * going to be now-3 seconds. Making it expired * in the cache. */ @@ -751,7 +752,7 @@ cachedb_intcache_store(struct module_qstate* qstate, int msg_expired) (void)dns_cache_store(qstate->env, &qstate->qinfo, qstate->return_msg->rep, 0, qstate->prefetch_leeway, 0, qstate->region, store_flags, qstate->qstarttime); - if(msg_expired) { + if(serve_expired && msg_expired) { /* set TTLs to zero again */ adjust_msg_ttl(qstate->return_msg, -1); /* Send serve expired responses based on the cachedb diff --git a/doc/Changelog b/doc/Changelog index ee2b5fb6e..193af9e72 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -7,6 +7,7 @@ - Extended test for cachedb serve expired. - Fix makefile dependencies for fake_event.c. - Fix cachedb for serve-expired with serve-expired-reply-ttl. + - Fix to not reply serve expired unless enabled for cachedb. 9 April 2024: Yorgos - Merge #1043 from xiaoxiaoafeifei: Add loongarch support; updates