]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Treat serve_expired_norec_ttl as a backoff timer for failed updates of expired...
authorYorgos Thessalonikefs <yorgos@nlnetlabs.nl>
Wed, 6 Nov 2024 14:08:28 +0000 (15:08 +0100)
committerYorgos Thessalonikefs <yorgos@nlnetlabs.nl>
Wed, 6 Nov 2024 14:08:28 +0000 (15:08 +0100)
daemon/worker.c

index 713de316373aedd018fae774d474cd6a32a28a74..9c42f9806499851c8f85263267997fe31641d53e 100644 (file)
@@ -1845,10 +1845,10 @@ lookup_cache:
                                 * its qname must be that used for cache
                                 * lookup. */
                                if((worker->env.cfg->prefetch &&
-                                       *worker->env.now >= rep->prefetch_ttl) ||
+                                       rep->prefetch_ttl <= *worker->env.now) ||
                                        (worker->env.cfg->serve_expired &&
-                                       *worker->env.now > rep->ttl)) {
-
+                                       rep->ttl < *worker->env.now  &&
+                                       !(*worker->env.now < rep->serve_expired_norec_ttl))) {
                                        time_t leeway = rep->ttl - *worker->env.now;
                                        if(rep->ttl < *worker->env.now)
                                                leeway = 0;