]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
515. [bug] The ssu table was not beinge attached / detached
authorMark Andrews <marka@isc.org>
Fri, 13 Oct 2000 13:45:45 +0000 (13:45 +0000)
committerMark Andrews <marka@isc.org>
Fri, 13 Oct 2000 13:45:45 +0000 (13:45 +0000)
                        by dns_zone_[sg]etssutable.  [RT#397]

CHANGES
lib/dns/include/dns/zone.h
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index 8163399939b7262b65cf214cf62492fa481fb687..e947139357e9a70ac2cbfd11f87fc7c23332e75a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+ 515.  [bug]           The ssu table was not beinge attached / detached
+                       by dns_zone_[sg]etssutable.  [RT#397]
+
  514.  [func]          Retry refresh and notify queries if they timeout.
                        [RT #388]
 
index 7b945979502762b482aa8e832aacede8c1bf8d13..206dc6a37986e9f364a7d3bb7a70c75e8cf5ded3 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.h,v 1.79 2000/10/12 21:51:58 mws Exp $ */
+/* $Id: zone.h,v 1.80 2000/10/13 13:45:45 marka Exp $ */
 
 #ifndef DNS_ZONE_H
 #define DNS_ZONE_H 1
@@ -920,7 +920,7 @@ dns_zone_setidleout(dns_zone_t *zone, isc_uint32_t idleout);
 void
 dns_zone_getssutable(dns_zone_t *zone, dns_ssutable_t **table);
 /*
- * Set the simple-secure-update policy table.
+ * Get the simple-secure-update policy table.
  *
  * Requires:
  *     'zone' to be a valid zone.
@@ -929,7 +929,7 @@ dns_zone_getssutable(dns_zone_t *zone, dns_ssutable_t **table);
 void
 dns_zone_setssutable(dns_zone_t *zone, dns_ssutable_t *table);
 /*
- * Get the simple-secure-update policy table.
+ * Set / clear the simple-secure-update policy table.
  *
  * Requires:
  *     'zone' to be a valid zone.
index 2764585f1b0fd04552bf44386e5b9cd7c6f98d33..86f3219c71c619f53c194298c3e5570d9d3f539f 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.231 2000/10/13 13:23:09 marka Exp $ */
+/* $Id: zone.c,v 1.232 2000/10/13 13:45:43 marka Exp $ */
 
 #include <config.h>
 
@@ -4474,14 +4474,23 @@ dns_zone_getssutable(dns_zone_t *zone, dns_ssutable_t **table) {
        REQUIRE(DNS_ZONE_VALID(zone));
        REQUIRE(table != NULL);
        REQUIRE(*table == NULL);
-       *table = zone->ssutable;
+
+       LOCK(&zone->lock);
+       if (zone->ssutable != NULL)
+               dns_ssutable_attach(zone->ssutable, table);
+       UNLOCK(&zone->lock);
 }
 
 void
 dns_zone_setssutable(dns_zone_t *zone, dns_ssutable_t *table) {
        REQUIRE(DNS_ZONE_VALID(zone));
-       REQUIRE(table != NULL);
-       zone->ssutable = table;
+
+       LOCK(&zone->lock);
+       if (zone->ssutable != NULL)
+               dns_ssutable_detach(&zone->ssutable);
+       if (table != NULL)
+               dns_ssutable_attach(table, &zone->ssutable);
+       UNLOCK(&zone->lock);
 }
 
 void