2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 22:45:39 +00:00

Merge branch '1101-matthijs-checkconf-i' into 'master'

named-checkconf -i: ignore deprecate warnings

Closes #1101

See merge request isc-projects/bind9!2079
This commit is contained in:
Matthijs Mekking
2019-06-28 05:50:40 -04:00
8 changed files with 99 additions and 2 deletions

View File

@@ -1,3 +1,6 @@
5259. [func] New option '-i' for 'named-checkconf' to ignore
warnings about deprecated options. [GL #1101]
5258. [func] Added support for the GeoIP2 API from MaxMind. This 5258. [func] Added support for the GeoIP2 API from MaxMind. This
will be compiled in by default if the "libmaxminddb" will be compiled in by default if the "libmaxminddb"
library is found at compile time, but can be library is found at compile time, but can be

View File

@@ -28,6 +28,7 @@
#include <isc/util.h> #include <isc/util.h>
#include <isccfg/namedconf.h> #include <isccfg/namedconf.h>
#include <isccfg/grammar.h>
#include <bind9/check.h> #include <bind9/check.h>
@@ -61,7 +62,7 @@ usage(void) ISC_PLATFORM_NORETURN_POST;
static void static void
usage(void) { usage(void) {
fprintf(stderr, "usage: %s [-chjlvz] [-p [-x]] [-t directory] " fprintf(stderr, "usage: %s [-chijlvz] [-p [-x]] [-t directory] "
"[named.conf]\n", program); "[named.conf]\n", program);
exit(1); exit(1);
} }
@@ -555,6 +556,7 @@ main(int argc, char **argv) {
bool load_zones = false; bool load_zones = false;
bool list_zones = false; bool list_zones = false;
bool print = false; bool print = false;
bool nodeprecate = false;
unsigned int flags = 0; unsigned int flags = 0;
isc_commandline_errprint = false; isc_commandline_errprint = false;
@@ -562,7 +564,7 @@ main(int argc, char **argv) {
/* /*
* Process memory debugging argument first. * Process memory debugging argument first.
*/ */
#define CMDLINE_FLAGS "cdhjlm:t:pvxz" #define CMDLINE_FLAGS "cdhijlm:t:pvxz"
while ((c = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) { while ((c = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
switch (c) { switch (c) {
case 'm': case 'm':
@@ -595,6 +597,10 @@ main(int argc, char **argv) {
debug++; debug++;
break; break;
case 'i':
nodeprecate = true;
break;
case 'j': case 'j':
nomerge = false; nomerge = false;
break; break;
@@ -675,11 +681,16 @@ main(int argc, char **argv) {
RUNTIME_CHECK(cfg_parser_create(mctx, logc, &parser) == ISC_R_SUCCESS); RUNTIME_CHECK(cfg_parser_create(mctx, logc, &parser) == ISC_R_SUCCESS);
if (nodeprecate) {
cfg_parser_setflags(parser, CFG_PCTX_NODEPRECATED, true);
}
cfg_parser_setcallback(parser, directory_callback, NULL); cfg_parser_setcallback(parser, directory_callback, NULL);
if (cfg_parse_file(parser, conffile, &cfg_type_namedconf, &config) != if (cfg_parse_file(parser, conffile, &cfg_type_namedconf, &config) !=
ISC_R_SUCCESS) ISC_R_SUCCESS)
{
exit(1); exit(1);
}
result = bind9_check_namedconf(config, loadplugins, logc, mctx); result = bind9_check_namedconf(config, loadplugins, logc, mctx);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {

View File

@@ -126,6 +126,15 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>-i</term>
<listitem>
<para>
Ignore warnings on deprecated options.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>-p</term> <term>-p</term>
<listitem> <listitem>

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
options {
dnssec-validation yes;
};
trusted-keys {
fake.trusted. 257 3 8
"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
QxA+Uk1ihz0=";
};
managed-keys {
fake.managed. initial-key 257 3 8
"AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3
+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kv
ArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF
0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+e
oZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfd
RUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwN
R1AkUTV74bU=";
};

View File

@@ -126,6 +126,20 @@ grep '.*' < checkconf.out$n.3 > /dev/null && ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret` status=`expr $status + $ret`
n=`expr $n + 1`
echo_i "checking named-checkconf deprecate warnings ($n)"
ret=0
$CHECKCONF deprecated.conf > checkconf.out$n.1 2>&1
grep "option 'managed-keys' is deprecated" < checkconf.out$n.1 > /dev/null || ret=1
grep "option 'trusted-keys' is deprecated" < checkconf.out$n.1 > /dev/null || ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
# set -i to ignore deprecate warnings
$CHECKCONF -i deprecated.conf > checkconf.out$n.2 2>&1
grep '.*' < checkconf.out$n.2 > /dev/null && ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
n=`expr $n + 1` n=`expr $n + 1`
echo_i "range checking fields that do not allow zero ($n)" echo_i "range checking fields that do not allow zero ($n)"
ret=0 ret=0

View File

@@ -95,6 +95,17 @@ cfg_parser_create(isc_mem_t *mctx, isc_log_t *lctx, cfg_parser_t **ret);
* be reused for parsing multiple files or buffers. * be reused for parsing multiple files or buffers.
*/ */
void
cfg_parser_setflags(cfg_parser_t *pctx, unsigned int flags, bool turn_on);
/*%<
* Set parser context flags. The flags are not checked for sensibility.
* If 'turn_on' is 'true' the flags will be set, otherwise the flags will
* be cleared.
*
* Requires:
*\li "pctx" is not NULL.
*/
void void
cfg_parser_setcallback(cfg_parser_t *pctx, cfg_parser_setcallback(cfg_parser_t *pctx,
cfg_parsecallback_t callback, cfg_parsecallback_t callback,

View File

@@ -507,6 +507,18 @@ cfg_parser_create(isc_mem_t *mctx, isc_log_t *lctx, cfg_parser_t **ret) {
return (result); return (result);
} }
void
cfg_parser_setflags(cfg_parser_t *pctx, unsigned int flags, bool turn_on)
{
REQUIRE(pctx != NULL);
if (turn_on) {
pctx->flags |= flags;
} else {
pctx->flags &= ~flags;
}
}
static isc_result_t static isc_result_t
parser_openfile(cfg_parser_t *pctx, const char *filename) { parser_openfile(cfg_parser_t *pctx, const char *filename) {
isc_result_t result; isc_result_t result;

View File

@@ -97,6 +97,7 @@ cfg_parser_error
cfg_parser_mapadd cfg_parser_mapadd
cfg_parser_reset cfg_parser_reset
cfg_parser_setcallback cfg_parser_setcallback
cfg_parser_setflags
cfg_parser_warning cfg_parser_warning
cfg_peektoken cfg_peektoken
cfg_pluginlist_foreach cfg_pluginlist_foreach