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 6b937ed5f6)
This commit is contained in:
+24
-6
@@ -883,6 +883,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
|
||||
@@ -1958,28 +1962,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);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
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);
|
||||
if (zone->catzs != NULL) {
|
||||
dns_catz_catzs_detach(&zone->catzs);
|
||||
}
|
||||
zone_catz_disable(zone);
|
||||
UNLOCK_ZONE(zone);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user