]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
prevented 'named-checkconf -z' from stopping due to an intermediate fail
authorTatuya JINMEI 神明達哉 <jinmei@isc.org>
Thu, 10 Oct 2002 13:22:00 +0000 (13:22 +0000)
committerTatuya JINMEI 神明達哉 <jinmei@isc.org>
Thu, 10 Oct 2002 13:22:00 +0000 (13:22 +0000)
RT #3653

developer: marka
reviewer: jinmei

bin/check/named-checkconf.c

index 95dd11d93f49fc5eb1cc23e28274bd76a1e0158d..ee7551340157f700a2aeaa0099e0469a3d4f6ba4 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: named-checkconf.c,v 1.26 2002/07/11 04:50:34 marka Exp $ */
+/* $Id: named-checkconf.c,v 1.27 2002/10/10 13:22:00 jinmei Exp $ */
 
 #include <config.h>
 
@@ -129,6 +129,7 @@ configure_view(const char *vclass, const char *view, cfg_obj_t *config,
        cfg_obj_t *voptions;
        cfg_obj_t *zonelist;
        isc_result_t result = ISC_R_SUCCESS;
+       isc_result_t tresult;
 
        voptions = NULL;
        if (vconfig != NULL)
@@ -145,9 +146,10 @@ configure_view(const char *vclass, const char *view, cfg_obj_t *config,
             element = cfg_list_next(element))
        {
                cfg_obj_t *zconfig = cfg_listelt_value(element);
-               CHECK(configure_zone(vclass, view, zconfig, mctx));
+               tresult = configure_zone(vclass, view, zconfig, mctx);
+               if (tresult != ISC_R_SUCCESS)
+                       result = tresult;
        }
- cleanup:
        return (result);
 }
 
@@ -160,6 +162,7 @@ load_zones_fromconfig(cfg_obj_t *config, isc_mem_t *mctx) {
        cfg_obj_t *vconfig;
        const char *vclass;
        isc_result_t result = ISC_R_SUCCESS;
+       isc_result_t tresult;
 
        views = NULL;
 
@@ -178,12 +181,16 @@ load_zones_fromconfig(cfg_obj_t *config, isc_mem_t *mctx) {
                                vclass = cfg_obj_asstring(classobj);
                }
                vname = cfg_obj_asstring(cfg_tuple_get(vconfig, "name"));
-               CHECK(configure_view(vclass, vname, config, vconfig, mctx));
+               tresult = configure_view(vclass, vname, config, vconfig, mctx);
+               if (tresult != ISC_R_SUCCESS)
+                       result = tresult;
        }
 
-       if (views == NULL)
-               CHECK(configure_view("IN", "_default", config, NULL, mctx));
- cleanup:
+       if (views == NULL) {
+               tresult = configure_view("IN", "_default", config, NULL, mctx);
+               if (tresult != ISC_R_SUCCESS)
+                       result = tresult;
+       }
        return (result);
 }