]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix to not reply serve expired unless enabled for cachedb.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 10 Apr 2024 15:06:01 +0000 (17:06 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 10 Apr 2024 15:06:01 +0000 (17:06 +0200)
cachedb/cachedb.c
doc/Changelog

index 548ec198d93c89736b75c083fbca6c89e176a2cd..0cecea11d58ea50adefc3c6f98784517cc6a7901 100644 (file)
@@ -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
index ee2b5fb6eec85f9b0b1c07671a03e048e4cdd236..193af9e721b34c3d3295b015e93e6b14ecee4adc 100644 (file)
@@ -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