86 lines
2.3 KiB
Diff
86 lines
2.3 KiB
Diff
|
|
From 885e44650b547cff88095d01769e303474582612 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Aram Sargsyan <aram@isc.org>
|
||
|
|
Date: Wed, 5 Jan 2022 09:38:36 +0000
|
||
|
|
Subject: [PATCH] Separate the locked parts of dns_zone_catz_enable/disable
|
||
|
|
functions
|
||
|
|
|
||
|
|
Separate the locked parts of dns_zone_catz_enable() and
|
||
|
|
dns_zone_catz_disable() functions into static functions. This will
|
||
|
|
let us perform those tasks from the other parts of the module while
|
||
|
|
the zone is locked, avoiding one pair of additional unlocking and
|
||
|
|
locking operations.
|
||
|
|
|
||
|
|
(cherry picked from commit 6b937ed5f67a13cf6ad6249380073a6e647d7897)
|
||
|
|
Conflict: NA
|
||
|
|
Reference: https://gitlab.isc.org/isc-projects/bind9/-/commit/885e44650b547cff88095d01769e303474582612
|
||
|
|
---
|
||
|
|
lib/dns/zone.c | 28 +++++++++++++++++++++++-----
|
||
|
|
1 file changed, 23 insertions(+), 5 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
|
||
|
|
index 2faf12519e..9205271574 100644
|
||
|
|
--- a/lib/dns/zone.c
|
||
|
|
+++ b/lib/dns/zone.c
|
||
|
|
@@ -871,6 +871,10 @@ static inline void
|
||
|
|
zone_attachdb(dns_zone_t *zone, dns_db_t *db);
|
||
|
|
static inline void
|
||
|
|
zone_detachdb(dns_zone_t *zone);
|
||
|
|
+static void
|
||
|
|
+zone_catz_enable(dns_zone_t *zone, dns_catz_zones_t *catzs);
|
||
|
|
+static void
|
||
|
|
+zone_catz_disable(dns_zone_t *zone);
|
||
|
|
static isc_result_t
|
||
|
|
default_journal(dns_zone_t *zone);
|
||
|
|
static void
|
||
|
|
@@ -1930,28 +1934,42 @@ dns_zone_rpz_disable_db(dns_zone_t *zone, dns_db_t *db) {
|
||
|
|
zone->rpzs->zones[zone->rpz_num]);
|
||
|
|
}
|
||
|
|
|
||
|
|
-void
|
||
|
|
-dns_zone_catz_enable(dns_zone_t *zone, dns_catz_zones_t *catzs) {
|
||
|
|
+static void
|
||
|
|
+zone_catz_enable(dns_zone_t *zone, dns_catz_zones_t *catzs) {
|
||
|
|
REQUIRE(DNS_ZONE_VALID(zone));
|
||
|
|
REQUIRE(catzs != NULL);
|
||
|
|
|
||
|
|
- LOCK_ZONE(zone);
|
||
|
|
INSIST(zone->catzs == NULL || zone->catzs == catzs);
|
||
|
|
dns_catz_catzs_set_view(catzs, zone->view);
|
||
|
|
if (zone->catzs == NULL) {
|
||
|
|
dns_catz_catzs_attach(catzs, &zone->catzs);
|
||
|
|
}
|
||
|
|
- UNLOCK_ZONE(zone);
|
||
|
|
}
|
||
|
|
|
||
|
|
void
|
||
|
|
-dns_zone_catz_disable(dns_zone_t *zone) {
|
||
|
|
+dns_zone_catz_enable(dns_zone_t *zone, dns_catz_zones_t *catzs) {
|
||
|
|
REQUIRE(DNS_ZONE_VALID(zone));
|
||
|
|
|
||
|
|
LOCK_ZONE(zone);
|
||
|
|
+ zone_catz_enable(zone, catzs);
|
||
|
|
+ UNLOCK_ZONE(zone);
|
||
|
|
+}
|
||
|
|
+
|
||
|
|
+static void
|
||
|
|
+zone_catz_disable(dns_zone_t *zone) {
|
||
|
|
+ REQUIRE(DNS_ZONE_VALID(zone));
|
||
|
|
+
|
||
|
|
if (zone->catzs != NULL) {
|
||
|
|
dns_catz_catzs_detach(&zone->catzs);
|
||
|
|
}
|
||
|
|
+}
|
||
|
|
+
|
||
|
|
+void
|
||
|
|
+dns_zone_catz_disable(dns_zone_t *zone) {
|
||
|
|
+ REQUIRE(DNS_ZONE_VALID(zone));
|
||
|
|
+
|
||
|
|
+ LOCK_ZONE(zone);
|
||
|
|
+ zone_catz_disable(zone);
|
||
|
|
UNLOCK_ZONE(zone);
|
||
|
|
}
|
||
|
|
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|