mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-22 10:10:14 -04:00
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. |
||
|---|---|---|
| .. | ||
| bench | ||
| dns | ||
| include/tests | ||
| isc | ||
| isccfg | ||
| libtest | ||
| ns | ||
| .gitignore | ||
| meson.build | ||