]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorAndreas Gustafsson <source@isc.org>
Wed, 23 Jan 2002 02:05:42 +0000 (02:05 +0000)
committerAndreas Gustafsson <source@isc.org>
Wed, 23 Jan 2002 02:05:42 +0000 (02:05 +0000)
Fix RT #2309 differently, allowing rather than rejecting empty
 also-notify clauses

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

index b1b4f1b05b7338b275bafcc13c541ddd2ad10d4d..d63833981be07fa764a50c76ecb6de42cdcbd444 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.h,v 1.106.2.1 2001/11/13 18:57:14 gson Exp $ */
+/* $Id: zone.h,v 1.106.2.2 2002/01/23 02:05:42 gson Exp $ */
 
 #ifndef DNS_ZONE_H
 #define DNS_ZONE_H 1
@@ -421,15 +421,12 @@ dns_zone_setalsonotify(dns_zone_t *zone, isc_sockaddr_t *notify,
                       isc_uint32_t count);
 /*
  *     Set the list of additional servers to be notified when
- *     a zone changes.  To clear the list use 'notify = NULL'
- *     and 'count = 0'.
+ *     a zone changes.  To clear the list use 'count = 0'.
  *
  * Require:
  *     'zone' to be a valid zone.
- *     'notify' to be non NULL.
- *     'count' the number of notify.
- *
- *     If 'notify' is NULL then 'count' must be zero.
+ *     'notify' to be non-NULL if count != 0.
+ *     'count' to be the number of notifyees
  *
  * Returns:
  *     ISC_R_SUCCESS
index 98af14bd9f1a6d4bbb4359efd5304b13c2c28d7a..aa2e143098846056e7e5a0f069070a2f1e928d2a 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.333.2.5 2001/11/13 18:57:11 gson Exp $ */
+/* $Id: zone.c,v 1.333.2.6 2002/01/23 02:05:40 gson Exp $ */
 
 #include <config.h>
 
@@ -1713,8 +1713,7 @@ dns_zone_setalsonotify(dns_zone_t *zone, isc_sockaddr_t *notify,
        isc_sockaddr_t *new;
 
        REQUIRE(DNS_ZONE_VALID(zone));
-       REQUIRE((notify == NULL && count == 0) ||
-               (notify != NULL && count != 0));
+       REQUIRE(count == 0 || notify != NULL);
 
        LOCK_ZONE(zone);
        if (zone->notify != NULL) {
@@ -1723,19 +1722,16 @@ dns_zone_setalsonotify(dns_zone_t *zone, isc_sockaddr_t *notify,
                zone->notify = NULL;
                zone->notifycnt = 0;
        }
-       if (notify == NULL)
-               goto unlock;
-
-       new = isc_mem_get(zone->mctx, count * sizeof *new);
-       if (new == NULL) {
-               UNLOCK_ZONE(zone);
-               return (ISC_R_NOMEMORY);
+       if (count != 0) {
+               new = isc_mem_get(zone->mctx, count * sizeof *new);
+               if (new == NULL) {
+                       UNLOCK_ZONE(zone);
+                       return (ISC_R_NOMEMORY);
+               }
+               memcpy(new, notify, count * sizeof *new);
+               zone->notify = new;
+               zone->notifycnt = count;
        }
-       memcpy(new, notify, count * sizeof *new);
-       zone->notify = new;
-       zone->notifycnt = count;
-
- unlock:
        UNLOCK_ZONE(zone);
        return (ISC_R_SUCCESS);
 }