bind9/lib/dns
Colin Vidal 78274ec2b1 fix EDE 22 time out detection
Extended DNS error 22 (No reachable authority) was previously detected
when `fctx_expired` fired. It turns out this function is used as a
"safety net" and the timeout detection should be caught earlier.

It was working though, because of another issue fixed by !9927. Since
this change, the recursive request timed out detection occurs before
`fctx_expired` so EDE 22 is not added to the response message anymore.

The fix of the problem is to add the EDE 22 code in two situations:

- When the dispatch code timed out (rctx_timedout) the resolver code
  checks various properties to figure out if it needs to make another
  fetch attempt. One of the paramters if the fetch expiration time. If
  it expires, the whole recursion is canceled, so it now adds the EDE 22
  code.

- If the fetch expiration time doesn't expires in the case above (and
  other parameters allows it) a new fetch attempt is made (fctx_query).
  But before the new request is actually made, the fetch expiration time
  is re-checked. It might then has elapsed, and the whole recursion is
  canceled. So it now also adds the EDE 22 code here as well.
2025-01-27 11:49:44 +01:00
..
include add support for EDE code 1 and 2 2025-01-24 12:26:30 +00:00
rdata Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
acl.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
adb.c Remove memory limit on ADB finds and fetches 2025-01-22 14:13:35 +01:00
badcache.c Improve the badcache cleaning by adding LRU and using RCU 2024-11-27 17:44:53 +01:00
byaddr.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
client.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -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 redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
db.c use more generic log module name for 'logtoomanyrecords' 2024-11-26 04:06:58 +00:00
db_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dbiterator.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
diff.c Incrementally apply AXFR transfer 2024-11-22 15:00:55 +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 clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
dns64.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
dnssec.c dnssec-signzone retain signature if key is offline 2025-01-23 09:43:07 +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 clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
dst_api.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dst_internal.h Remove C++ support from the public header 2024-12-18 13:10:39 +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 clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
ecs.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
fixedname.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
forward.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
hmac_link.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
ipkeylist.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
iptable.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
journal.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08: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 Fix possible truncation in dns_keymgr_status() 2025-01-23 09:31:00 +01:00
keystore.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
keytable.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
Makefile.am Remove RBTDB implementation 2024-11-12 09:07:19 +01:00
master.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
masterdump.c Terminate yaml string after negative comment 2025-01-22 21:33:08 +00:00
message.c add support for multiple EDE 2025-01-22 21:07:44 +01:00
name.c Optimize memory layout of core structs 2024-11-27 16:04:25 +01:00
nametree.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
ncache.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
nsec.c Drop single-use RETERR macro 2024-12-10 08:46:22 +00:00
nsec3.c dns_nsec3_addnsec3() can fail when iterating back 2025-01-09 17:04:08 -08:00
nta.c Implement global limit for outgoing queries 2024-12-05 14:17:07 +01:00
openssl_link.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +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 disable deterministic ecdsa for fips builds 2024-12-09 10:33:01 +00: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 clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08: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 redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
qp_p.h Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
qpcache.c Optimize database decref by avoiding locking with refs > 1 2025-01-22 14:27:13 +01:00
qpcache_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
qpzone.c Optimize database decref by avoiding locking with refs > 1 2025-01-22 14:27:13 +01: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 Parse the URI template and check for a dns variable 2024-11-26 12:38:49 +11:00
rdatalist.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rdataset.c remove "sortlist" 2024-12-11 15:09:24 -08:00
rdatasetiter.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rdataslab.c Rewrite the GLUE cache in QP zone database 2024-12-13 21:48:11 +01:00
remote.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +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 fix EDE 22 time out detection 2025-01-27 11:49:44 +01:00
result.c clean up result codes that are never used 2025-01-23 15:54:57 -08:00
rootns.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rpz.c clean up log module names 2024-12-11 17:11:32 +00:00
rriterator.c Remove fixed value for the rrset-order option 2024-12-09 13:09:26 +01:00
rrl.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
sdlz.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
skr.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
soa.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
ssu.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
transport.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
tsig.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 add support for EDE code 1 and 2 2025-01-24 12:26:30 +00:00
view.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
xfrin.c Separate the connect and the read timeouts in dispatch 2025-01-22 11:57:52 +00:00
zone.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
zone_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
zonekey.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
zoneverify.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
zt.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00