bind9/lib/dns
Matthijs Mekking 45448fc383 Make keymgr state machine more robust
If the keymgr state machine is in an invalid state, it tries to move
it self to a valid state. But when you do key rollovers during an
invalid state, and the next state is also an invalid state, the keymgr
will happily do the transition.

It would be good to not do key rollovers if there is not a KSK and ZSK
fully omnipresent. But also it would be good to safeguard against
unexpected transitions.

This commit does that by not moving things to unretentive (which is
the state where we would remove the corresponding record from the zone)
if the state machine is currently in an invalid state.

(cherry picked from commit b19871f8a2)
2025-12-05 13:22:00 +01:00
..
include Detect resolution loops between fetches 2025-11-28 09:32:53 +01:00
rdata AMTRELAY type 0 presentation format handling was wrong 2025-11-20 08:47:22 +00: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 08:08:23 +02:00
adb.c Detect resolution loops between fetches 2025-11-28 09:32:53 +01:00
badcache.c Improve the badcache cleaning by adding LRU and using RCU 2024-11-27 17:07:03 +00:00
byaddr.c Use clang-format-20 to update formatting 2025-06-25 13:32:08 +10:00
cache.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
callbacks.c add setup/commit functions to rdatacallbacks 2024-03-08 15:36:56 -08:00
catz.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
client.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
clientinfo.c refactor dns_clientinfo_init(); use separate function to set ECS 2023-02-07 23:48:22 -08:00
compress.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
db.c Limit the additional processing for large RDATA sets 2025-01-15 13:57:27 +01:00
db_p.h Rewrite the GLUE cache in QP zone database 2025-01-06 14:00:47 +01:00
dbiterator.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
diff.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
dispatch.c Use clang-format-20 to update formatting 2025-06-25 13:32:08 +10:00
dlz.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
dns64.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
dnsrps.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
dnssec.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
dnstap.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
dnstap.proto Update the dnstap protobuf definition 2024-04-26 16:08:46 +03:00
ds.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
dst_api.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
dst_internal.h Minor refactor of dst code 2025-10-01 12:26:40 +00:00
dst_openssl.h Report file and line when converting OpenSSL errors 2023-04-03 12:06:04 +10:00
dst_parse.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
dst_parse.h Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
dyndb.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
ecs.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
ede.c Don't copy EDE codes if source is same as destination 2025-04-02 16:42:23 +00:00
fixedname.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
forward.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
gen.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
geoip2.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
gssapi_link.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
gssapictx.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
hmac_link.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
ipkeylist.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
iptable.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
journal.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
kasp.c Implement named-checkconf -k (check keys) 2025-09-29 15:13:26 +02:00
key.c Don't check DNS_KEYFLAG_NOAUTH 2025-03-24 23:52:02 -07:00
keydata.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
keymgr.c Make keymgr state machine more robust 2025-12-05 13:22:00 +01:00
keystore.c Allow keystore.c to compile on Solaris 2025-05-30 06:37:09 +00:00
keytable.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
log.c remove {root-}delegation-only 2023-03-23 12:57:01 -07:00
Makefile.am Add support for parsing DSYNC scheme mnemonics 2025-08-06 13:13:34 +10:00
master.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
masterdump.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
message.c Retry lookups with unsigned DNAME over TCP 2025-10-02 12:58:54 +02:00
name.c Optimize memory layout of core structs 2024-12-09 09:04:28 +01:00
nametree.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
ncache.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
nsec.c Drop single-use RETERR macro 2024-12-10 08:47:25 +00:00
nsec3.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
nta.c Detect resolution loops between fetches 2025-11-28 09:32:53 +01:00
openssl_link.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
openssl_shim.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
openssl_shim.h Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
opensslecdsa_link.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
openssleddsa_link.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
opensslrsa_link.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
order.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
peer.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
private.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
probes.d Do not destroy IXFR journal in xfrin_end() 2023-12-20 17:21:14 +01:00
qp.c Fix dns_qpmulti_memusage() on empty dns_qpmulti_t instance 2025-09-17 14:01:44 +02:00
qp_p.h Tune min and max chunk size 2025-08-05 12:48:19 +02:00
qpcache.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
qpcache_p.h rename qpdb to qpcache 2024-03-08 15:36:56 -08:00
qpzone.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
qpzone_p.h stub dns_qpmulti-based zone database implementation 2024-03-06 20:57:31 -08:00
rbt-cachedb.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
rbt-zonedb.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
rbt.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
rbtdb.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
rbtdb_p.h Expand the usage of mark_ancient() helper functions 2025-02-03 15:53:34 +01:00
rcode.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
rdata.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
rdatalist.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
rdataset.c Remove dns_rdataset_equals as unneeded 2025-09-10 17:09:14 +10:00
rdatasetiter.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
rdataslab.c Remove dns_rdataset_equals as unneeded 2025-09-10 17:09:14 +10:00
remote.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
request.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 08:08:23 +02:00
resconf.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
resolver.c Detect resolution loops between fetches 2025-11-28 09:32:53 +01:00
result.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
rootns.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
rpz.c RPZ canonical warning displays zone entry incorrectly 2025-09-02 23:43:40 +00:00
rriterator.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
rrl.c Use clang-format-20 to update formatting 2025-06-25 13:32:08 +10:00
sdlz.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
skr.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
soa.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
ssu.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
ssu_external.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
stats.c Use clang-format-20 to update formatting 2025-06-25 13:32:08 +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 14:26:52 +01:00
tkey.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
transport.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
tsig.c Prevent assertion when processing TSIG algorithm 2025-05-07 13:45:48 +02:00
tsig_p.h remove dns__tsig_algallocated() 2023-06-14 08:14:38 +00:00
ttl.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
update.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
validator.c Detect resolution loops between fetches 2025-11-28 09:32:53 +01:00
view.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
xfrin.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
zone.c standardize CHECK and RETERR macros 2025-12-03 19:17:20 -08:00
zone_p.h Refactor findzonekeys 2024-01-25 14:48:07 +01:00
zonekey.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
zoneverify.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00
zt.c Remove redundant parentheses from the return statement 2024-11-19 14:26:52 +01:00