bind9/tests/dns
Colin Vidal 1b5f757084 Introduce a delegation database
Add `dns_delegdb_t`, a qpmulti-based database enabling to lookup a
delegation set (`dns_delegset_t`) from a zonecut name (`dns_name_t`). A
delegation set object essentially contains an expiration time and a list
of delegation (`dns_deleg_t`). Finally, a delegation can be either:

- A list of IP addresses (`isc_netaddrlist_t`), for NS-based delegation
  providing glues or DELEG-based delegation using `server-ipv4=` or
  `server-ipv6=`;
- Or a list of nameserver names, for NS-based delegation without glues,
  or DELEG-based delegation using `server-name=`;
- Or a list of nameserver names, for DELEG-based delegation using
  `include-delegparam=`.

The delegation database API provides lookup by closest zonecut,
delegation and delegation set builders as well as insertion of those
newly built delegation set, dumping to a `FILE *`, conversion from an NS
rdataset to a delegation set, deletion of a specific zonecut or all the
sub-tree of a given zonecut.

A memory context is internally used inside the delegation database and
can be constraint to a maximum size. Once it gets close to its maximum
size and a new delegation set is inserted into the database, a
reclamation flow is run internally removing the least recently used
entries.

The delegation set and delegation objects are, once they been inserted
into the database, read-only object. Thus, the caller can use them
without concurrency or locking concerns, and must detached them once its
done with it.
2026-03-30 20:41:13 +02:00
..
comparekeys Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
testdata replace the build system with meson 2025-06-11 10:30:12 +03:00
testkeys Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
.gitignore Remove test.skr unit test file 2024-09-09 19:41:03 +02:00
acl_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
badcache_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
byaddr_test.c Include <stdarg.h> in byaddr_test.c 2025-11-19 10:16:40 +11:00
db_test.c Support compilation with cmocka 2.0.0+ 2026-01-07 10:38:45 +01:00
dbdiff_test.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dbiterator_test.c Implement dns_dbiterator_seek3 2025-12-10 14:18:52 +01:00
dbversion_test.c Add a new dbversion unit test 2026-01-21 10:47:17 +00:00
deleg_test.c Introduce a delegation database 2026-03-30 20:41:13 +02:00
diff_test.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dispatch_test.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
dns64_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
dnstap_test.c Convert dns_dtenv_t reference counting to standard macors 2026-03-18 16:10:07 +00:00
dst_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
ede_test.c Support compilation with cmocka 2.0.0+ 2026-01-07 10:38:45 +01:00
geoip_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
Kdh.+002+18602.key Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
keytable_test.c change issecuredomain() functions to bool 2025-08-05 12:16:36 +02:00
Krsa.+008+29238.key Check if RSASHA1 is supported by the OS 2022-08-09 16:22:19 +02:00
master_test.c Fix formatting 2025-12-09 13:32:24 +01:00
meson.build Introduce a delegation database 2026-03-30 20:41:13 +02:00
mkraw.pl Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
name_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
nametree_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
nsec3_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
nsec3param_test.c Export zone functions 2025-10-31 13:43:47 +01:00
private_test.c Preserve brackets around string concatenation 2025-06-25 12:44:22 +10:00
qp_test.c Fix a false positive compiler warning/error 2026-01-15 17:49:29 +00:00
qpdb_test.c standardize CHECK and RETERR macros 2025-12-03 13:26:28 -08:00
qpmulti_test.c Fix dns_qpmulti_memusage() on empty dns_qpmulti_t instance 2025-09-16 16:30:15 +02:00
qpzone_test.c Fix formatting 2025-12-10 12:18:34 +01:00
rdata_test.c Test the ability to walk the iterators multiple times 2026-03-27 12:00:22 +00:00
rdataset_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
rdatasetstats_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
resconf_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
resolver_test.c Support compilation with cmocka 2.0.0+ 2026-01-07 10:38:45 +01:00
rsa_test.c Rename isc_result_t ret; to isc_result_t result; 2025-12-03 13:45:43 -08:00
sigs_test.c Export zone functions 2025-10-31 13:43:47 +01:00
skr_test.c Rename isc_result_t ret; to isc_result_t result; 2025-12-03 13:45:43 -08:00
time_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
transport_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
tsig_test.c Fix and call tsig_badsig unit test 2026-01-24 01:25:55 +11:00
unreachcache_test.c Fix an issue with unreachable cache's unit test 2025-12-02 16:03:26 +00:00
update_test.c standardize CHECK and RETERR macros 2025-12-03 13:26:28 -08:00
vecheader_test.c Fix formatting 2025-12-10 12:18:34 +01:00
zonefile_test.c add extra tokens to the zone file name template 2025-09-08 12:10:09 +02:00
zonemgr_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
zt_test.c Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00