+ 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]
* 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
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.
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.
* 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>
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