bind9/lib/dns
Matthijs Mekking b19871f8a2 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.
2025-12-05 12:14:14 +01:00
..
include document usage of BIND9 constructors/destructors 2025-12-04 16:09:40 +01:00
rdata switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
acl.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
acl_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
adb.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
badcache.c Apply the changes from updated set_if_not_null semantic patch 2025-10-08 17:44:50 +02:00
byaddr.c Share reverse (ARPA) domain names 2025-10-01 12:16:05 +02:00
cache.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
callbacks.c Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
catz.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
client.c switch to CHECK where it wasn't being used 2025-12-03 13:45:42 -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 the 'name_coff' parameter in dns_name_towire() 2025-02-25 12:53:25 -08:00
db.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08: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 standardize CHECK and RETERR macros 2025-12-03 13:26:28 -08:00
dispatch.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
dlz.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
dlz_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
dns64.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
dnssec.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
dnstap.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
ds.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
dst_api.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
dst_internal.h Minor refactor of dst code 2025-10-01 12:25:53 +00:00
dst_openssl.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dst_parse.c Use isc_result_t more consistently 2025-12-03 13:45:43 -08:00
dst_parse.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dyndb.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08: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 add dns_message API to add EDNS options 2025-11-21 11:13:18 -08: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 use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
hmac_link.c Rename isc_result_t ret; to isc_result_t result; 2025-12-03 13:45:43 -08:00
ipkeylist.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
iptable.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
journal.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
kasp.c Rename isc_result_t ret; to isc_result_t result; 2025-12-03 13:45:43 -08: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 Make keymgr state machine more robust 2025-12-05 12:14:14 +01:00
keystore.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
keytable.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
lib.c Replace per-zone lock buckets with global buckets 2025-07-09 15:27:38 +02:00
master.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
masterdump.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
meson.build Refactor zone fetch code 2025-11-06 10:54:54 +01:00
message.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
name.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
nametree.c Rename DNS_DB_NSEC_ constants to DNS_DBNAMESPACE_ 2025-07-10 13:52:59 +00:00
ncache.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
notify.c switch to CHECK where it wasn't being used 2025-12-03 13:45:42 -08:00
nsec.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
nsec3.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
nta.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
openssl_link.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
openssl_shim.h Move the dst__openssl_toresult to isc_tls unit 2024-08-08 11:59:41 +02:00
opensslecdsa_link.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
openssleddsa_link.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
opensslrsa_link.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
order.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
peer.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
private.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
probes-dns.d Use unique names for probes.d files 2025-09-24 13:18:13 +02:00
qp.c Add more unit tests for dns_qp unit 2025-09-17 15:58:44 +02:00
qp_p.h Use the <stdbit.h> names for bit manipulation shims 2025-08-26 15:32:53 +02:00
qpcache.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
qpcache_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
qpzone.c standardize CHECK and RETERR macros 2025-12-03 13:26:28 -08:00
qpzone_p.h Replace per-zone lock buckets with global buckets 2025-07-09 15:27:38 +02:00
rcode.c standardize CHECK and RETERR macros 2025-12-03 13:26:28 -08:00
rdata.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
rdatalist.c dns_rdatalist functions are not for general use 2025-09-15 16:11:50 +00:00
rdataset.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
rdatasetiter.c add DNS_DBITERATOR_FOREACH and DNS_RDATASETITER_FOREACH 2025-05-27 21:08:09 -07:00
rdataslab.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08: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 a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
resconf.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
resolver.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
result.c clean up result codes that are never used 2025-01-23 15:54:57 -08:00
rootns.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
rpz.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
rriterator.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
rrl.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
sdlz.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
skr.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08: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 switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
tkey.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
transport.c switch to CHECK where it wasn't being used 2025-12-03 13:45:42 -08:00
tsig.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
tsig_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
ttl.c standardize CHECK and RETERR macros 2025-12-03 13:26:28 -08:00
unreachcache.c Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
update.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
validator.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
view.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
xfrin.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
zone.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
zone_p.h Export zone functions 2025-11-06 10:54:54 +01:00
zonefetch.c Detect resolution loops between fetches 2025-11-27 17:34:25 +01:00
zoneverify.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
zt.c report when zone reload already in progress 2025-10-17 20:36:18 +00:00