Bind 9.9.3 configuration message: missing 'file' entry

Mark Andrews marka at isc.org
Sun Jun 2 22:34:45 UTC 2013


In message <7610864823C0D04D89342623A3ADC9DE54C4A6A2 at hopple.countryday.net>, "S
pain, Dr. Jeffry A." writes:
> For bind 9.9.3 build on Ubuntu 12.04LTS x64, I see log messages, for example,
>  "/etc/bind/named.conf.local:4: zone 'jaspain.biz': missing 'file' entry" for
>  each slave zone configured for inline signing. The file clause is, in fact, 
> present in the configuration file, for example:
> zone "jaspain.biz" {
>         type slave;
>         file "/var/cache/bind/jaspain.biz.db";
>         key-directory "/var/lib/bind/jaspain.biz";
>         auto-dnssec maintain;
>         inline-signing yes;
>         masters { stealthMasters; };
>         notify explicit;
>         also-notify { publicSlaves; };
>         allow-transfer { localhost; transferees; };
> };
> 
> The message does not occur for a similar slave zone that does not have key-di
> rectory, auto-dnssec, or inline-signing configured. The bind9 service appears
>  to be functioning normally despite this log message.
> 
> The message originates from the code in /lib/bind9/check.c starting in line 1
> 798.
> isc_result_t res1;
> obj = NULL;
> tresult = cfg_map_get(zoptions, "file", &obj);
> obj = NULL;
> res1 = cfg_map_get(zoptions, "inline-signing", &obj);
> if ((tresult != ISC_R_SUCCESS &&
>     (ztype == MASTERZONE || ztype == HINTZONE)) ||
>     (ztype == SLAVEZONE && res1 == ISC_R_SUCCESS)) {
> 	cfg_obj_log(zconfig, logctx, ISC_LOG_ERROR,
> 	    "zone '%s': missing 'file' entry",
> 	    znamestr);
> 	result = tresult;
> }
> 
> Based on the code comments starting at line 1785, is the conditional expressi
> on of the "if" statement incorrectly parenthesized? Should it be as follows?
> if (tresult != ISC_R_SUCCESS &&
>     (ztype == MASTERZONE || ztype == HINTZONE ||
>     (ztype == SLAVEZONE && res1 == ISC_R_SUCCESS))) {
> 
> Thanks. Jeff.
> 
> Jeffry A. Spain, Network Administrator
> Cincinnati Country Day School
> 
> _______________________________________________
> Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe
>  from this list
> 
> bind-users mailing list
> bind-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind-users

The brackets were wrong and we should have checked that obj was true.

Mark

diff --git a/lib/bind9/check.c b/lib/bind9/check.c
index b5658a1..33dd163 100644
--- a/lib/bind9/check.c
+++ b/lib/bind9/check.c
@@ -1930,8 +1930,9 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
 		obj = NULL;
 		res1 = cfg_map_get(zoptions, "inline-signing", &obj);
 		if ((tresult != ISC_R_SUCCESS &&
-		    (ztype == MASTERZONE || ztype == HINTZONE)) ||
-		    (ztype == SLAVEZONE && res1 == ISC_R_SUCCESS)) {
+		    (ztype == MASTERZONE || ztype == HINTZONE ||
+		     (ztype == SLAVEZONE && res1 == ISC_R_SUCCESS &&
+		      cfg_obj_asboolean(obj))))) {
 			cfg_obj_log(zconfig, logctx, ISC_LOG_ERROR,
 			    "zone '%s': missing 'file' entry",
 			    znamestr);
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at isc.org


More information about the bind-users mailing list