From: Aram Sargsyan Date: Thu, 23 Feb 2023 14:43:41 +0000 (+0000) Subject: Call dns_catz_new_zones() only when it is needed X-Git-Tag: v9.19.11~25^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a52d30660183442848e5d585de179a23c19bc6f;p=thirdparty%2Fbind9.git Call dns_catz_new_zones() only when it is needed The configure_catz() function creates the catalog zones structure for the view even when it is not needed, in which case it then discards it (by detaching) later. Instead, call dns_catz_new_zones() only when it is needed, i.e. when there is no existing "previous" view with an existing 'catzs', that is going to be reused. --- diff --git a/bin/named/server.c b/bin/named/server.c index 54a51b78b7c..a37aa4f3786 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -3163,9 +3163,6 @@ configure_catz(dns_view_t *view, dns_view_t *pview, const cfg_obj_t *config, return (ISC_R_SUCCESS); } - dns_catz_new_zones(view->mctx, named_g_loopmgr, &view->catzs, - &ns_catz_zonemodmethods); - if (pview != NULL) { old = pview->catzs; } else { @@ -3178,10 +3175,12 @@ configure_catz(dns_view_t *view, dns_view_t *pview, const cfg_obj_t *config, } if (old != NULL) { - dns_catz_detach_catzs(&view->catzs); dns_catz_attach_catzs(pview->catzs, &view->catzs); dns_catz_detach_catzs(&pview->catzs); dns_catz_prereconfig(view->catzs); + } else { + dns_catz_new_zones(view->mctx, named_g_loopmgr, &view->catzs, + &ns_catz_zonemodmethods); } while (zone_element != NULL) {