bind9/tests
Aram Sargsyan 14915b0241 Redesign the unreachable primaries cache
The cache for unreachable primaries was added to BIND 9 in 2006 via
1372e172d0. It features a 10-slot LRU
array with 600 seconds (10 minutes) fixed delay. During this time, any
primary with a hiccup would be blocked for the whole block duration
(unless overwritten by a different entry).

As this design is not very flexible (i.e. the fixed delay and the fixed
amount of the slots), redesign it based on the badcache.c module, which
was implemented earlier for a similar mechanism.

The differences between the new code and the badcache module were large
enough to create a new module instead of trying to make the badcache
module universal, which could complicate the implementation.

The new design implements an exponential backoff for entries which are
added again soon after expiring, i.e. the next expiration happens in
double the amount of time of the previous expiration, but in no more
time than the defined maximum value.

The initial and the maximum expiration values are hard-coded, but, if
required, it should be trivial to implement configurable knobs.
2025-06-04 09:16:35 +00:00
..
bench Silence potential divide by zero warning in qpmulti.c 2025-06-02 23:07:31 +00:00
dns Redesign the unreachable primaries cache 2025-06-04 09:16:35 +00:00
include/tests Replace isc_mem_destroy() with isc_mem_detach() 2025-03-05 11:17:17 +01:00
isc Give every memory pool a name 2025-05-29 05:46:46 +02:00
isccfg add CFG_LIST_FOREACH macro 2025-05-27 21:08:09 -07:00
libtest Add zone "initial-file" option 2025-06-03 12:03:07 -07:00
ns wrap ns_client_error() for unit testing 2025-02-25 22:40:48 +00:00
.gitignore Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
Makefile.am Move resconf_test.c to tests/dns and cleanup 2024-12-12 22:16:36 +00:00
unit-test-driver.sh.in Reformat shell scripts with shfmt 2023-10-26 10:23:50 +02:00