]> git.ipfire.org Git - thirdparty/unbound.git/commit
A few changes for TTL processing:
authorYorgos Thessalonikefs <yorgos@nlnetlabs.nl>
Mon, 15 Sep 2025 08:03:35 +0000 (10:03 +0200)
committerYorgos Thessalonikefs <yorgos@nlnetlabs.nl>
Mon, 15 Sep 2025 08:03:35 +0000 (10:03 +0200)
commit73e408f1d0792267429e9f5f89537cda61297952
tree5cc79714c31a4bda4bcd575b3e63a665891cd186
parentd521135f667e30e9e099e6971364537ba9d8247a
A few changes for TTL processing:
- Cached messages that reach 0 TTL are considered expired. This prevents
  Unbound itself from issuing replies with TTL 0 and possibly causing a
  thundering herd at the last second. Upstream replies of TTL 0 still
  get the usual pass-through but they are not considered for caching
  from Unbound or any of its caching modules.
- 'serve-expired-reply-ttl' is changed and is now capped by the original
  TTL value of the record to try and make some sense when replying
  with expired records.
- TTL decoding was updated to adhere to RFC8767 section 4 where a set
  high-order bit means the value is positive instead of 0.
43 files changed:
cachedb/cachedb.c
daemon/worker.c
doc/example.conf.in
doc/unbound.conf.rst
services/authzone.c
services/cache/dns.c
services/cache/dns.h
services/cache/rrset.c
services/localzone.c
services/mesh.c
services/rpz.c
testcode/unitmain.c
testdata/cachedb_expired.crpl
testdata/cachedb_expired_client_timeout.crpl
testdata/cachedb_expired_reply_ttl.crpl
testdata/cachedb_subnet_change.crpl
testdata/cachedb_val_expired.crpl
testdata/fwd_0ttlservfail.rpl
testdata/rrset_use_cached.rpl
testdata/serve_expired.rpl
testdata/serve_expired_0ttl_nodata.rpl
testdata/serve_expired_0ttl_nxdomain.rpl
testdata/serve_expired_0ttl_servfail.rpl
testdata/serve_expired_client_timeout.rpl
testdata/serve_expired_client_timeout_no_prefetch.rpl [deleted file]
testdata/serve_expired_client_timeout_servfail.rpl
testdata/serve_expired_reply_ttl.rpl
testdata/serve_expired_ttl_client_timeout.rpl
testdata/serve_expired_ttl_reset.rpl
testdata/serve_expired_zerottl.rpl
testdata/subnet_global_prefetch_always_forward.crpl
testdata/subnet_global_prefetch_expired.crpl
testdata/ttl_zero_cacherep.rpl
util/data/msgencode.c
util/data/msgencode.h
util/data/msgparse.c
util/data/msgparse.h
util/data/msgreply.c
util/data/msgreply.h
util/data/packed_rrset.c
util/data/packed_rrset.h
validator/val_neg.c
validator/val_utils.c