From: W.C.A. Wijngaards Date: Fri, 12 Jun 2026 09:48:14 +0000 (+0200) Subject: - Fix that for auth-zone and rpz zones the allow-notify X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;p=thirdparty%2Funbound.git - Fix that for auth-zone and rpz zones the allow-notify addresses and netblocks are available from start, and fix the probe step skip. --- diff --git a/doc/Changelog b/doc/Changelog index 5b905d126..e97466738 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,8 @@ +12 June 2026: Wouter + - Fix that for auth-zone and rpz zones the allow-notify + addresses and netblocks are available from start, and + fix the probe step skip. + 11 June 2026: Wouter - Fix for #1306: configure detects specifically the call to SSL_set_quic_tls_early_data_enabled and diff --git a/services/authzone.c b/services/authzone.c index 998d422d4..3fc3f174e 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -106,6 +106,9 @@ static void xfr_probe_send_or_end(struct auth_xfer* xfr, * or transfer task if nothing to probe, or false if already in progress */ static int xfr_start_probe(struct auth_xfer* xfr, struct module_env* env, struct auth_master* spec); +/** copy the master addresses from the task_probe lookups to the allow_notify + * list of masters */ +static void probe_copy_masters_for_allow_notify(struct auth_xfer* xfr); /** delete xfer structure (not its tree entry) */ void auth_xfer_delete(struct auth_xfer* xfr); @@ -2213,6 +2216,10 @@ auth_zones_cfg(struct auth_zones* az, struct config_auth* c) lock_rw_unlock(&z->lock); return 0; } + /* Pick up allow notify entries, early. This works for + * addresses and netblocks. */ + if(!x->allow_notify_list) + probe_copy_masters_for_allow_notify(x); lock_basic_unlock(&x->lock); } @@ -6961,8 +6968,8 @@ xfr_start_probe(struct auth_xfer* xfr, struct module_env* env, if(!have_probe_targets(xfr->task_probe->masters) && xfr->task_probe->masters != NULL) xfr->task_probe->only_lookup = 1; - if(!(xfr->task_probe->only_lookup && - xfr->task_probe->masters != NULL)) { + if(!xfr->task_probe->only_lookup && + !have_probe_targets(xfr->task_probe->masters)) { /* useless to pick up task_probe, no masters to * probe. Instead attempt to pick up task transfer */ if(xfr->task_transfer->worker == NULL) {