]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
911. [bug] Fail gracefully with multiple hint zones. [RT #1433]
authorMark Andrews <marka@isc.org>
Mon, 25 Jun 2001 08:34:46 +0000 (08:34 +0000)
committerMark Andrews <marka@isc.org>
Mon, 25 Jun 2001 08:34:46 +0000 (08:34 +0000)
CHANGES
bin/named/server.c

diff --git a/CHANGES b/CHANGES
index e4954b419f496c1251f953c78dbbd3d46899d848..3e3d61996614e3a62344f3b53006f3c9636ac932 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,4 @@
+ 911.  [bug]           Fail gracefully with multiple hint zones. [RT #1433]
 
        --- 9.1.3rc2 released ---
 
index e4611d6b1e4b1f828581181df5ec1c4f06b6a860..0d6a29582680501e4d9de97598c0c3e3f103586a 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: server.c,v 1.276.2.2 2001/03/13 02:40:22 bwelling Exp $ */
+/* $Id: server.c,v 1.276.2.3 2001/06/25 08:34:46 marka Exp $ */
 
 #include <config.h>
 
@@ -1135,15 +1135,23 @@ configure_zone(dns_c_ctx_t *cctx, dns_c_zone_t *czone, dns_c_view_t *cview,
                        result = ISC_R_FAILURE;
                        goto cleanup;
                }
-               if (dns_name_equal(origin, dns_rootname)) {
-                       result = configure_hints(view, czone->u.hzone.file);
-               } else {
+               if (!dns_name_equal(origin, dns_rootname)) {
                        isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
                                      NS_LOGMODULE_SERVER, ISC_LOG_WARNING,
                                      "ignoring non-root hint zone '%s'",
                                      corigin);
                        result = ISC_R_SUCCESS;
+                       goto cleanup;
+               }
+               if (view->hints != NULL) {
+                       isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
+                                     NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
+                                     "'%s' hint zone already defined",
+                                     corigin);
+                       result = ISC_R_EXISTS;
+                       goto cleanup;
                }
+               result = configure_hints(view, czone->u.hzone.file);
                goto cleanup;
        }