bind9/lib/dns
Evan Hunt 36cf1c6a5b when forwarding, try with CD=0 first
when sending a query to a forwarder for a name within a secure domain,
the first query is now sent with CD=0. when the forwarder itself
is validating, this will give it a chance to detect bogus data and
replace it with valid data before answering. this reduces our chances
of being stuck with data that can't be validated.

if the forwarder returns SERVFAIL to the initial query, the query
will be repeated with CD=1, to allow for the possibility that the
forwarder's validator is faulty or that the bogus answer is covered
by an NTA.

note: previously, CD=1 was only sent when the query name was in a
secure domain. today, validating servers have a trust anchor at the
root by default, so virtually all queries are in a secure domain.
therefore, the code has been simplified.  as long as validation is
enabled, any forward query that receives a SERVFAIL response will be
retried with CD=1.
2025-03-24 17:33:11 -07:00
..
include when forwarding, try with CD=0 first 2025-03-24 17:33:11 -07:00
rdata Check EDNS ZONEVERSION when parsing OPT record 2025-03-24 22:16:09 +00:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
acl.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
acl_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
adb.c Fix gaining adbname reference 2025-03-20 23:25:29 +00:00
badcache.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
byaddr.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
cache.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
callbacks.c Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
catz.c use new dns_rdatatype classification functions 2025-03-15 00:27:54 +00:00
client.c remove 'target' parameter from dns_name_concatenate() 2025-02-25 12:53:25 -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 Add dns_db_getzoneversion 2025-03-24 22:16:09 +00:00
db_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
dbiterator.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
diff.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
dispatch.c Use a suitable response in tcp_connected() when initiating a read 2025-01-22 13:40:45 +00:00
dlz.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
dlz_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
dns64.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
dnssec.c move dns_zonekey_iszonekey() to dns_dnssec module 2025-03-20 18:22:58 +00:00
dnstap.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dnstap.proto Update the dnstap protobuf definition 2024-04-26 16:08:46 +03:00
ds.c Remove target buffer from dns_name_downcase() 2025-02-25 12:17:34 +01:00
dst_api.c optimize key ID check when searching for matching keys 2025-03-20 18:22:58 +00:00
dst_internal.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
dst_openssl.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dst_parse.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dst_parse.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dyndb.c Remove convenience list macros from isc/util.h 2025-03-01 07:33:40 +01: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 detect dup EDE with bitmap and store next pos 2025-01-30 11:52:53 +01:00
fixedname.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
forward.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
gen.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
geoip2.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
gssapi_link.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
gssapictx.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
hmac_link.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
ipkeylist.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
iptable.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
journal.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
kasp.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
key.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
keydata.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
keymgr.c Update Retired and Removed if we update lifetime 2025-03-20 10:12:16 +00:00
keystore.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
keytable.c Remove offsets from the dns_name and dns_fixedname structures 2025-02-25 12:17:34 +01:00
lib.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
Makefile.am move dns_zonekey_iszonekey() to dns_dnssec module 2025-03-20 18:22:58 +00:00
master.c use new dns_rdatatype classification functions 2025-03-15 00:27:54 +00:00
masterdump.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
message.c Extend message code to display ZONEVERSION 2025-03-24 22:16:09 +00:00
name.c allow NULL compression context in dns_name_towire() 2025-02-25 12:53:25 -08:00
nametree.c Remove offsets from the dns_name and dns_fixedname structures 2025-02-25 12:17:34 +01:00
ncache.c remove the 'name_coff' parameter in dns_name_towire() 2025-02-25 12:53:25 -08:00
nsec.c remove 'target' parameter from dns_name_concatenate() 2025-02-25 12:53:25 -08:00
nsec3.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
nta.c Remove offsets from the dns_name and dns_fixedname structures 2025-02-25 12:17:34 +01:00
openssl_link.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
openssl_shim.h Move the dst__openssl_toresult to isc_tls unit 2024-08-08 11:59:41 +02:00
opensslecdsa_link.c unify fips handling to isc_crypto and make the toggle one way 2025-02-27 17:37:43 +03:00
openssleddsa_link.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
opensslrsa_link.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
order.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
peer.c Add option request-zoneversion 2025-03-24 22:16:09 +00:00
private.c Apply more SET_IF_NOT_NULL() changes 2024-12-13 13:52:52 +01:00
probes.d Do not destroy IXFR journal in xfrin_end() 2023-12-20 17:21:14 +01:00
qp.c Remove offsets from the dns_name and dns_fixedname structures 2025-02-25 12:17:34 +01:00
qp_p.h Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
qpcache.c move dns_zonekey_iszonekey() to dns_dnssec module 2025-03-20 18:22:58 +00:00
qpcache_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
qpzone.c move dns_zonekey_iszonekey() to dns_dnssec module 2025-03-20 18:22:58 +00:00
qpzone_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
rcode.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rdata.c convert rdatatype classification routines to inline 2025-03-15 00:27:54 +00:00
rdatalist.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rdataset.c remove the 'name_coff' parameter in dns_name_towire() 2025-02-25 12:53:25 -08:00
rdatasetiter.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rdataslab.c save time when creating a slab from another slab 2025-02-25 18:37:35 +00:00
remote.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
request.c Separate the connect and the read timeouts in dispatch 2025-01-22 11:57:52 +00:00
resconf.c Remove artificial search limit from libirs 2024-12-10 00:51:56 +00:00
resolver.c when forwarding, try with CD=0 first 2025-03-24 17:33:11 -07:00
result.c clean up result codes that are never used 2025-01-23 15:54:57 -08:00
rootns.c Simplify name initializers 2025-02-25 12:17:34 +01:00
rpz.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
rriterator.c Remove fixed value for the rrset-order option 2024-12-09 13:09:26 +01:00
rrl.c remove 'target' parameter from dns_name_concatenate() 2025-02-25 12:53:25 -08:00
sdlz.c use new dns_rdatatype classification functions 2025-03-15 00:27:54 +00:00
skr.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
soa.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
ssu.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
ssu_external.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
stats.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
time.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
tkey.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
transport.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
tsig.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
tsig_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
ttl.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
update.c Revert "Attach dnssecsignstats, rcvquerystats, and requeststats" 2024-12-06 19:46:39 +01:00
validator.c optimize key ID check when searching for matching keys 2025-03-20 18:22:58 +00:00
view.c simplify dns_name_fromtext() interface 2025-02-25 12:53:25 -08:00
xfrin.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
zone.c Return raw zone serial for inline zones 2025-03-24 22:16:09 +00:00
zone_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
zoneverify.c Simplify dns_name_init() 2025-02-25 12:17:34 +01:00
zt.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00