]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2471. [bug] named-checkzone was not reporting missing manditory
authorMark Andrews <marka@isc.org>
Fri, 24 Oct 2008 00:28:00 +0000 (00:28 +0000)
committerMark Andrews <marka@isc.org>
Fri, 24 Oct 2008 00:28:00 +0000 (00:28 +0000)
                        glue when sibling checks were disabled. [RT #18768]

CHANGES
bin/check/check-tool.c
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index f883491c52209ea42f614fc735d80ab1be95aa73..a83ba0c66e34656f730ec2328b935083b6c08ca1 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2471.  [bug]           named-checkzone was not reporting missing manditory
+                       glue when sibling checks were disabled. [RT #18768]
+
 2470.  [bug]           Elements of the isc_radix_node_t could be incorrectly
                        overwritten.  [RT# 18719]
 
index 1deb9431c4a26c0c6f375913d10de752dbfa3b24..98bc721484af1e030dabe5114d0e22692e63ff3e 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: check-tool.c,v 1.34 2008/01/18 23:46:57 tbox Exp $ */
+/* $Id: check-tool.c,v 1.35 2008/10/24 00:28:00 marka Exp $ */
 
 /*! \file */
 
 
 #include <isccfg/log.h>
 
+#ifndef CHECK_SIBLING
+#define CHECK_SIBLING 1
+#endif
+
+#ifndef CHECK_LOCAL
+#define CHECK_LOCAL 1
+#endif
+
 #ifdef HAVE_ADDRINFO
 #ifdef HAVE_GETADDRINFO
 #ifdef HAVE_GAISTRERROR
@@ -75,14 +83,23 @@ static const char *dbtype[] = { "rbt" };
 
 int debug = 0;
 isc_boolean_t nomerge = ISC_TRUE;
+#if CHECK_LOCAL
 isc_boolean_t docheckmx = ISC_TRUE;
 isc_boolean_t dochecksrv = ISC_TRUE;
 isc_boolean_t docheckns = ISC_TRUE;
+#else
+isc_boolean_t docheckmx = ISC_FALSE;
+isc_boolean_t dochecksrv = ISC_FALSE;
+isc_boolean_t docheckns = ISC_FALSE;
+#endif
 unsigned int zone_options = DNS_ZONEOPT_CHECKNS |
                            DNS_ZONEOPT_CHECKMX |
                            DNS_ZONEOPT_MANYERRORS |
                            DNS_ZONEOPT_CHECKNAMES |
                            DNS_ZONEOPT_CHECKINTEGRITY |
+#if CHECK_SIBLING
+                           DNS_ZONEOPT_CHECKSIBLING |
+#endif
                            DNS_ZONEOPT_CHECKWILDCARD |
                            DNS_ZONEOPT_WARNMXCNAME |
                            DNS_ZONEOPT_WARNSRVCNAME;
index fcf1d8e8e880439f813707fc54558f432c3d6b01..9c53ab4af1a381d649ff95b6b86cd26d67c18af0 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.482 2008/09/24 03:16:58 tbox Exp $ */
+/* $Id: zone.c,v 1.483 2008/10/24 00:28:00 marka Exp $ */
 
 /*! \file */
 
@@ -1883,14 +1883,16 @@ zone_check_glue(dns_zone_t *zone, dns_db_t *db, dns_name_t *name,
        if (result == DNS_R_NXRRSET || result == DNS_R_NXDOMAIN ||
            result == DNS_R_EMPTYNAME || result == DNS_R_DELEGATION) {
                const char *what;
-               if (dns_name_issubdomain(name, owner))
+               isc_boolean_t required = ISC_FALSE;
+               if (dns_name_issubdomain(name, owner)) {
                        what = "REQUIRED GLUE ";
-               else if (result == DNS_R_DELEGATION)
+                       required = ISC_TRUE;
+                } else if (result == DNS_R_DELEGATION)
                        what = "SIBLING GLUE ";
                else
                        what = "";
 
-               if (result != DNS_R_DELEGATION ||
+               if (result != DNS_R_DELEGATION || required ||
                    DNS_ZONE_OPTION(zone, DNS_ZONEOPT_CHECKSIBLING)) {
                        dns_zone_log(zone, level, "%s/NS '%s' has no %s"
                                     "address records (A or AAAA)",