bind9/lib/dns
Colin Vidal ea2cb4e9df test for auth+res server and glues in delegation
When a resolver+auth server has a delegation on a local zone and has a
glue, the glue can only be for in-domain NS.

In this case, when the resolver is looking at the zonecut,
`dns_view_bestzonecut()` synthesizes a delegset from an NS rdataset
found in the local zone (the delegation inside auth zone), and ignores
the glues if any.

As a result, the delegset will contain a single delegation of type
DNS_DELEGTYPE_NS_NAMES, which leads to an ADB fetch. But it's actually an
in-memory fetch, because in this case, the fetch will immediately find
the A/AAAA glues from the local zone.

An alternative approach (not chosen here) would be to make
`dns_view_bestzonecut()`, when converting an NS rdataset into a
`dns_deleg_t`, check for glues for the delegation in the auth zone, and
add those in the `dns_deleg_t`. The delegation would be of type
DNS_DELEGTYPE_NS_GLUES which would avoid the ADB name lookup.

However, that's extra code, extra logic and complexities, for a lookup
that will be done in memory anyway, just a bit later. So for now, this
is not implemented that way.

The test is added, however, to confirm that there is no attempt from the
resolver to get the NS fron the child zone.
2026-03-30 20:41:13 +02:00
..
include remove find_deepest_zonecut() from qpcache 2026-03-30 20:41:13 +02:00
rdata Allow the dns_rdata_in_apl structure to be walked twice 2026-03-27 12:00:22 +00: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 Resolver is parent-centric 2026-03-30 20:41:13 +02: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 Fix memory leak in dns_catz_options_setdefault() for zonedir 2026-03-14 07:57:00 +01:00
client.c Add switch to disable cookie checking in delv 2026-03-26 11:18:26 +11: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 Remove dns_db_findzonecut() 2026-03-30 20:41:13 +02:00
db_p.h Switch qpzone to rdatavec 2025-12-10 12:18:34 +01:00
dbiterator.c Implement dns_dbiterator_seek3 2025-12-10 14:18:52 +01:00
deleg.c Introduce a delegation database 2026-03-30 20:41:13 +02:00
diff.c Apply the dns_rdataset_cleanup patch through the codebase 2025-12-17 15:19:55 +01:00
dispatch.c Fix copy-paste typos in dns_dispatchmgr comments 2026-03-10 17:58:43 +01: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 Update dns_dnssec_sync(update|delete) return code 2025-12-19 14:08:15 +01:00
dnstap.c Take 'env' reference before async calling perform_reopen() 2026-03-18 16:10:07 +00:00
ds.c switch isc_md_type_t to a proper enum 2026-02-02 11:12:55 +03:00
dst_api.c switch isc_md_type_t to a proper enum 2026-02-02 11:12:55 +03:00
dst_internal.h Separate isc_hmac between pre and post OpenSSL 3.0 2026-02-02 11:50:14 +03:00
dst_openssl.h move openssl error reporting to isc/ossl_wrap 2026-02-02 11:50:14 +03:00
dst_parse.c Use isc__zero_or_more when calling isc_base64_tobuffer 2026-01-28 00:25:04 +11: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 Fix formatting after refactor 2025-12-10 11:28:10 +01: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 Release gnamebuf also on the error path 2026-02-06 18:33:44 +01:00
hmac_link.c don't transform errors in hmac_sign 2026-02-02 11:50:14 +03: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 Refactor dns_kasp_attach/detach 2026-01-23 09:59:52 +00: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 Fix setting retire in dns_keymgr_key_init 2026-03-05 10:14:45 +00:00
keystore.c Fix log level bug in keystore 2026-02-25 11:34:07 +01:00
keytable.c Fix rwlock type mismatch in delete_ds() error path 2026-03-17 16:05:11 +01:00
lib.c Replace lock keyfile hashmap with lock pool 2026-03-06 12:31:24 +01:00
master.c Dispatch async work jobs from the correct loop 2026-03-14 06:32:54 +01:00
masterdump.c Dispatch async work jobs from the correct loop 2026-03-14 06:32:54 +01:00
meson.build Introduce a delegation database 2026-03-30 20:41:13 +02:00
message.c Apply the dns_rdataset_cleanup patch through the codebase 2025-12-17 15:19:55 +01:00
name.c dns_name_totext() can now resize dynamic buffers 2025-12-09 12:26:30 -08:00
nametree.c Fix formatting after refactor 2025-12-10 11:28:10 +01:00
ncache.c dns_rdataset_* const parameters 2026-01-30 19:33:42 +01:00
notify.c Don't retry notify over TCP if it could not successed 2026-02-19 13:44:28 +01:00
nsec.c Lower case the NSEC next owner name when signing 2026-01-23 11:52:59 +00:00
nsec3.c Apply the dns_rdataset_cleanup patch through the codebase 2025-12-17 15:19:55 +01:00
nta.c Revert NTA flush on expire 2026-03-30 18:27:35 +00: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 expose isc__crypto_md in isc/ossl_wrap.h 2026-02-02 11:50:14 +03:00
openssleddsa_link.c cleanup unused header in isc/md.h 2026-02-02 11:50:14 +03:00
opensslrsa_link.c expose isc__crypto_md in isc/ossl_wrap.h 2026-02-02 11:50:14 +03: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 Apply the dns_rdataset_cleanup patch through the codebase 2025-12-17 15:19:55 +01:00
probes-dns.d Use unique names for probes.d files 2025-09-24 13:18:13 +02:00
qp.c Fix formatting after refactor 2025-12-10 11:28:10 +01:00
qp_p.h Fix formatting after refactor 2025-12-10 11:28:10 +01:00
qpcache.c remove find_deepest_zonecut() from qpcache 2026-03-30 20:41:13 +02:00
qpcache_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
qpzone.c Cleanup weird syntax defining struct dns_ixfr 2026-03-16 12:17:06 +01: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_rdataset_* const parameters 2026-01-30 19:33:42 +01:00
rdataset.c dns_rdataset_* const parameters 2026-01-30 19:33:42 +01:00
rdatasetiter.c add DNS_DBITERATOR_FOREACH and DNS_RDATASETITER_FOREACH 2025-05-27 21:08:09 -07:00
rdataslab.c Use offsetof() instead of pointer arithmetics to get slabheader 2026-02-18 14:29:16 +01:00
rdataslab_p.h Use ISC_UxxTOyy_BE macros for {peek,get,put}_uint16 macros 2025-08-18 12:36:47 +02:00
rdatavec.c dns_rdataset_* const parameters 2026-01-30 19:33:42 +01:00
rdatavec_p.h Fix formatting 2025-12-10 12:18:34 +01:00
remote.c simplify code around isc_mem_put() and isc_mem_free() 2025-05-28 17:22:32 -07:00
request.c Fix assertion failure when sending notify fails over UDP 2026-02-19 13:44:23 +01:00
resconf.c use a standard CLEANUP macro 2025-12-03 13:45:43 -08:00
resolver.c Add invariant check for delegset in rctx_nextserver() 2026-03-30 20:41:13 +02:00
result.c clean up result codes that are never used 2025-01-23 15:54:57 -08:00
rootns.c Apply the dns_rdataset_cleanup patch through the codebase 2025-12-17 15:19:55 +01:00
rpz.c Fix a bug in rpz.c:del_name() 2026-03-14 13:01:55 +01:00
rriterator.c Apply the dns_rdataset_cleanup patch through the codebase 2025-12-17 15:19:55 +01:00
rrl.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
sdlz.c dns_rdataset_* const parameters 2026-01-30 19:33:42 +01:00
skr.c Importing invalid SKR file might overflow the stack buffer 2026-02-24 19:44:57 +01: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 Add low contention stats counter 2026-03-26 10:19:25 +01:00
tests
time.c Use clang-format-22 to update formatting 2026-03-04 10:56:41 +01:00
tkey.c Fix a bug in dns_tkey_processquery() 2026-03-13 13:38:07 +01: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 Apply the dns_rdataset_cleanup patch through the codebase 2025-12-17 15:19:55 +01:00
validator.c Count temporal problems with DNSSEC validation as attempts 2026-03-30 11:16:13 +02:00
view.c test for auth+res server and glues in delegation 2026-03-30 20:41:13 +02:00
xfrin.c Cleanup weird syntax defining struct dns_ixfr 2026-03-16 12:17:06 +01:00
zone.c Add low contention stats counter 2026-03-26 10:19:25 +01:00
zone_p.h Replace lock keyfile hashmap with lock pool 2026-03-06 12:31:24 +01:00
zonefetch.c rename fetch response db field to cache 2026-02-10 08:50:16 +01:00
zoneverify.c Cleanup the extra dns_rdataset_disassociate() code 2025-12-17 15:19:55 +01:00
zt.c Remove unused dns_view_load() and dns_zt_load() 2026-02-12 13:43:13 +00:00