bind9/lib/dns
Aram Sargsyan 3262ebd0f3 xfrin: refactor and fix the ISC_R_CANCELED case handling
Previously a ISC_R_CANCELED result code switch-case has been added to
the zone.c:zone_xfrdone() function, which did two things:

1. Schedule a new zone transfer if there's a scheduled force reload of
   the zone.

2. Reset the primaries list.

This proved to be not a well-thought change and causes problems,
because the ISC_R_CANCELED code is used not only when the whole transfer
is canceled, but also when, for example, a particular primary server is
unreachable, and named still needs to continue the transfer process by
trying the next server, which it now no longer does in some cases. To
solve this issue, three changes are made:

1. Make sure dns_zone_refresh() runs on the zone's loop, so that the
   sequential calls of dns_zone_stopxfr() and dns_zone_forcexfr()
   functions (like done in 'rndc retransfer -force') run in intended
   order and don't race with each other.

2. Since starting the new transfer is now guaranteed to run after the
   previous transfer is shut down (see the previous change), remove the
   special handling of the ISC_R_CANCELED case, and let the default
   handler to handle it like before. This will bring back the ability to
   try the next primary if the current one was interrupted with a
   ISC_R_CANCELED result code.

3. Change the xfrin.c:xfrin_shutdown() function to pass the
   ISC_R_SHUTTINGDOWN result code instead of ISC_R_CANCELED, as it makes
   more sense.
2024-11-27 10:37:13 +00:00
..
include Move contributed DLZ modules into a separate repository 2024-11-26 12:29:41 +01:00
rdata Parse the URI template and check for a dns variable 2024-11-26 12:38:49 +11: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 redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
badcache.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
client.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 emit more helpful log for exceeding max-records-per-type 2024-11-26 04:06:58 +00: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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dlz.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dns64.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dnssec.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dst_api.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dst_internal.h Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
dst_openssl.h Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
dst_parse.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
dst_parse.h Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
dyndb.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
iptable.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
journal.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
kasp.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
keystore.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
masterdump.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
message.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
name.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
nsec3.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
nta.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
peer.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
private.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +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 emit more helpful log for exceeding max-records-per-type 2024-11-26 04:06:58 +00:00
qpcache_p.h Remove RBTDB implementation 2024-11-12 09:07:19 +01:00
qpzone.c emit more helpful log for exceeding max-records-per-type 2024-11-26 04:06:58 +00:00
qpzone_p.h stub dns_qpmulti-based zone database implementation 2024-03-06 20:57:31 -08: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 redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rdatasetiter.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rdataslab.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
remote.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
request.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
resconf.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
resolver.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
result.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rootns.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rpz.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rriterator.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
rrl.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
sdlz.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01: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 dns__tsig_algallocated() 2023-06-14 08:14:38 +00:00
ttl.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
update.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
validator.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
view.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
xfrin.c xfrin: refactor and fix the ISC_R_CANCELED case handling 2024-11-27 10:37:13 +00:00
zone.c xfrin: refactor and fix the ISC_R_CANCELED case handling 2024-11-27 10:37:13 +00:00
zone_p.h Refactor findzonekeys 2024-01-25 14:48:07 +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