]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Small refactor 'dns_zone_set*acl()'
authorMatthijs Mekking <matthijs@isc.org>
Thu, 19 Mar 2026 15:15:58 +0000 (16:15 +0100)
committerMatthijs Mekking <matthijs@isc.org>
Thu, 2 Apr 2026 13:50:09 +0000 (15:50 +0200)
The various 'dns_zone_set*acl()' functions can be refactored to
call 'dns_zone_clear*acl()', to avoid code duplication.

lib/dns/zoneproperties.c

index 4b44f9139bbbeea8182d515404a7b3d433607661..f468489941ae1e98567875e5370091668a995aa1 100644 (file)
@@ -1023,10 +1023,9 @@ void
 dns_zone_setqueryacl(dns_zone_t *zone, dns_acl_t *acl) {
        REQUIRE(DNS_ZONE_VALID(zone));
 
+       dns_zone_clearqueryacl(zone);
+
        LOCK_ZONE(zone);
-       if (zone->query_acl != NULL) {
-               dns_acl_detach(&zone->query_acl);
-       }
        dns_acl_attach(acl, &zone->query_acl);
        UNLOCK_ZONE(zone);
 }
@@ -1035,10 +1034,9 @@ void
 dns_zone_setqueryonacl(dns_zone_t *zone, dns_acl_t *acl) {
        REQUIRE(DNS_ZONE_VALID(zone));
 
+       dns_zone_clearqueryonacl(zone);
+
        LOCK_ZONE(zone);
-       if (zone->queryon_acl != NULL) {
-               dns_acl_detach(&zone->queryon_acl);
-       }
        dns_acl_attach(acl, &zone->queryon_acl);
        UNLOCK_ZONE(zone);
 }
@@ -1047,10 +1045,9 @@ void
 dns_zone_setupdateacl(dns_zone_t *zone, dns_acl_t *acl) {
        REQUIRE(DNS_ZONE_VALID(zone));
 
+       dns_zone_clearupdateacl(zone);
+
        LOCK_ZONE(zone);
-       if (zone->update_acl != NULL) {
-               dns_acl_detach(&zone->update_acl);
-       }
        dns_acl_attach(acl, &zone->update_acl);
        UNLOCK_ZONE(zone);
 }
@@ -1059,10 +1056,9 @@ void
 dns_zone_setforwardacl(dns_zone_t *zone, dns_acl_t *acl) {
        REQUIRE(DNS_ZONE_VALID(zone));
 
+       dns_zone_clearforwardacl(zone);
+
        LOCK_ZONE(zone);
-       if (zone->forward_acl != NULL) {
-               dns_acl_detach(&zone->forward_acl);
-       }
        dns_acl_attach(acl, &zone->forward_acl);
        UNLOCK_ZONE(zone);
 }
@@ -1071,10 +1067,9 @@ void
 dns_zone_setxfracl(dns_zone_t *zone, dns_acl_t *acl) {
        REQUIRE(DNS_ZONE_VALID(zone));
 
+       dns_zone_clearxfracl(zone);
+
        LOCK_ZONE(zone);
-       if (zone->xfr_acl != NULL) {
-               dns_acl_detach(&zone->xfr_acl);
-       }
        dns_acl_attach(acl, &zone->xfr_acl);
        UNLOCK_ZONE(zone);
 }