bind9/lib/dns
Ondřej Surý 9f7ba584cf
Don't preserve cache entries if new TTL is smaller than existing
Under certain circumstances, cache entries with equivalent rdataset
might not get replaced.  Previously such entry would get preserved
regardless of the new TTL and expire time on the existing header would
get updated when the expire time was less than the expire time on the
existing header.  Change the logic to preserve the existing header only
if the new expire time is larger than the existing one and replace the
existing cache entry when the new expire time is less than the existing
one.

Co-authored-by: Jinmei Tatuya <jtatuya@infoblox.com>
2025-08-26 18:26:34 +02:00
..
include Implement '-T slowrpz' named testing option 2025-08-22 16:31:17 +00:00
rdata Use dns_rdatatype_none more consistently 2025-08-15 07:22:52 +02:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
acl.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
acl_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
adb.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
badcache.c Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
byaddr.c Use clang-format-20 to update formatting 2025-06-25 12:44:22 +10:00
cache.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
callbacks.c Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
catz.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
client.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
clientinfo.c refactor dns_clientinfo_init(); use separate function to set ECS 2023-02-07 23:48:22 -08:00
compress.c remove the 'name_coff' parameter in dns_name_towire() 2025-02-25 12:53:25 -08:00
db.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
db_p.h Rename DNS_SIGTYPE() to DNS_SIGTYPEPAIR() 2025-08-15 07:22:52 +02:00
dbiterator.c add DNS_DBITERATOR_FOREACH and DNS_RDATASETITER_FOREACH 2025-05-27 21:08:09 -07:00
diff.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dispatch.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dlz.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dlz_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
dns64.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dnssec.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dnstap.c Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
ds.c Future: DS private algorithm support 2025-06-19 07:15:20 +10:00
dst_api.c Fix spurious missing key files log messages 2025-06-19 08:13:07 +02:00
dst_internal.h Use DST algorithm values instead of dns_secalg where needed 2025-06-19 07:00:53 +10:00
dst_openssl.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dst_parse.c Add PRIVATEOIDs for RSASHA256 and RSASHA512 2025-06-19 07:15:20 +10:00
dst_parse.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dyndb.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dyndb_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
ecs.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
ede.c Don't copy EDE codes if source is same as destination 2025-04-02 18:06:52 +02:00
fixedname.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
forward.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
gen.c Silence "may be truncated" warnings 2025-08-04 15:38:17 +02:00
geoip2.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
gssapi_link.c Deprecate max-rsa-exponent-size, always use 4096 instead 2025-05-21 00:50:08 +02:00
gssapictx.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
hmac_link.c Deprecate max-rsa-exponent-size, always use 4096 instead 2025-05-21 00:50:08 +02:00
ipkeylist.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
iptable.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
journal.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
kasp.c Add manual-mode config option 2025-08-21 16:00:19 +02:00
key.c Cleanup the DST cryptographic API 2025-05-20 09:52:35 +02:00
keydata.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
keymgr.c Simplify add/sub/mul overflow checks 2025-08-26 15:32:53 +02:00
keystore.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
keytable.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
lib.c Replace per-zone lock buckets with global buckets 2025-07-09 15:27:38 +02:00
master.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
masterdump.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
meson.build replace the build system with meson 2025-06-11 10:30:12 +03:00
message.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
name.c allow NULL compression context in dns_name_towire() 2025-02-25 12:53:25 -08:00
nametree.c Rename DNS_DB_NSEC_ constants to DNS_DBNAMESPACE_ 2025-07-10 13:52:59 +00:00
ncache.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
nsec.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
nsec3.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
nta.c Decouple database and node lifetimes by adding node-specific vtables 2025-08-07 11:39:38 -07:00
openssl_link.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
openssl_shim.h Move the dst__openssl_toresult to isc_tls unit 2024-08-08 11:59:41 +02:00
opensslecdsa_link.c Deprecate max-rsa-exponent-size, always use 4096 instead 2025-05-21 00:50:08 +02:00
openssleddsa_link.c Deprecate max-rsa-exponent-size, always use 4096 instead 2025-05-21 00:50:08 +02:00
opensslrsa_link.c Add PRIVATEOIDs for RSASHA256 and RSASHA512 2025-06-19 07:15:20 +10:00
order.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
peer.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
private.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
probes.d Do not destroy IXFR journal in xfrin_end() 2023-12-20 17:21:14 +01:00
qp.c Use the <stdbit.h> names for bit manipulation shims 2025-08-26 15:32:53 +02:00
qp_p.h Use the <stdbit.h> names for bit manipulation shims 2025-08-26 15:32:53 +02:00
qpcache.c Don't preserve cache entries if new TTL is smaller than existing 2025-08-26 18:26:34 +02:00
qpcache_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
qpzone.c Remove opportunistic node cleaning, clean up only on closeversion 2025-08-19 14:18:44 +02:00
qpzone_p.h Replace per-zone lock buckets with global buckets 2025-07-09 15:27:38 +02:00
rcode.c Add support for parsing DSYNC scheme mnemonics 2025-08-05 17:27:44 +10:00
rdata.c Use dns_rdatatype_none more consistently 2025-08-15 07:22:52 +02:00
rdatalist.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
rdataset.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
rdatasetiter.c add DNS_DBITERATOR_FOREACH and DNS_RDATASETITER_FOREACH 2025-05-27 21:08:09 -07:00
rdataslab.c Simplify add/sub/mul overflow checks 2025-08-26 15:32:53 +02:00
rdataslab_p.h Use ISC_UxxTOyy_BE macros for {peek,get,put}_uint16 macros 2025-08-18 12:36:47 +02:00
remote.c simplify code around isc_mem_put() and isc_mem_free() 2025-05-28 17:22:32 -07:00
request.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
resconf.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
resolver.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
result.c clean up result codes that are never used 2025-01-23 15:54:57 -08:00
rootns.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
rpz.c Use the <stdbit.h> names for bit manipulation shims 2025-08-26 15:32:53 +02:00
rriterator.c Decouple database and node lifetimes by adding node-specific vtables 2025-08-07 11:39:38 -07:00
rrl.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
sdlz.c Decouple database and node lifetimes by adding node-specific vtables 2025-08-07 11:39:38 -07:00
skr.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
soa.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
ssu.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
ssu_external.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
stats.c Use clang-format-20 to update formatting 2025-06-25 12:44:22 +10:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
time.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
tkey.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
transport.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
tsig.c Remove unused link field from rdatacommon 2025-07-17 12:57:51 +02:00
tsig_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
ttl.c Use clang-format-20 to update formatting 2025-06-25 12:44:22 +10:00
unreachcache.c Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
update.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
validator.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
view.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
xfrin.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
zone.c Detect if keymgr made changes 2025-08-21 16:09:49 +02:00
zone_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
zoneverify.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
zt.c Rename DNS_DB_NSEC_ constants to DNS_DBNAMESPACE_ 2025-07-10 13:52:59 +00:00