From 2a52d30660183442848e5d585de179a23c19bc6f Mon Sep 17 00:00:00 2001 From: Aram Sargsyan Date: Thu, 23 Feb 2023 14:43:41 +0000 Subject: [PATCH] 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. --- bin/named/server.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/bin/named/server.c b/bin/named/server.c index 54a51b78b7..a37aa4f378 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) {