diff --git a/bin/check/check-conf.c b/bin/check/check-conf.c new file mode 100644 index 0000000000..df45adf194 --- /dev/null +++ b/bin/check/check-conf.c @@ -0,0 +1,87 @@ +/* + * Copyright (C) 1999, 2000 Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM + * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL + * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id: check-conf.c,v 1.1 2000/12/14 21:33:11 marka Exp $ */ + +#include + +#include +#include + +#include +#include +#include + +#include +#include + +#include "check-tool.h" + +static isc_result_t +zonecbk(dns_c_ctx_t *ctx, dns_c_zone_t *zone, dns_c_view_t *view, void *uap) { + + UNUSED(ctx); + UNUSED(uap); + UNUSED(zone); + UNUSED(view); + + return (ISC_R_SUCCESS); +} + +static isc_result_t +optscbk(dns_c_ctx_t *ctx, void *uap) { + UNUSED(ctx); + UNUSED(uap); + + return (ISC_R_SUCCESS); +} + +int +main (int argc, char **argv) { + dns_c_ctx_t *configctx = NULL; + const char *conffile = NULL; + isc_mem_t *mctx = NULL; + dns_c_cbks_t callbacks; + isc_log_t *log = NULL; + + callbacks.zonecbk = zonecbk; + callbacks.optscbk = optscbk; + callbacks.zonecbkuap = NULL; + callbacks.optscbkuap = NULL; + + if (argc > 1) + conffile = argv[1]; + if (conffile == NULL || conffile[0] == '\0') + conffile = "/etc/named.conf"; + + RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); + + RUNTIME_CHECK(setup_logging(mctx, &log) == ISC_R_SUCCESS); + + if (dns_c_parse_namedconf(conffile, mctx, &configctx, &callbacks) != + ISC_R_SUCCESS) { + exit(1); + } + + dns_c_ctx_delete(&configctx); + + isc_log_destroy(&log); + + isc_mem_destroy(&mctx); + + return (0); +} diff --git a/bin/check/check-tool.c b/bin/check/check-tool.c new file mode 100644 index 0000000000..81bfaf1682 --- /dev/null +++ b/bin/check/check-tool.c @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2000 Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM + * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL + * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id: check-tool.c,v 1.1 2000/12/14 21:33:11 marka Exp $ */ + +#include + +#include "check-tool.h" +#include + +#include +#include + +#include + +isc_result_t +setup_logging(isc_mem_t *mctx, isc_log_t **logp) { + isc_logdestination_t destination; + isc_logconfig_t *logconfig = NULL; + isc_log_t *log = NULL; + + RUNTIME_CHECK(isc_log_create(mctx, &log, &logconfig) == ISC_R_SUCCESS); + isc_log_setcontext(log); + dns_log_init(log); + dns_log_setcontext(log); + + destination.file.stream = stdout; + destination.file.name = NULL; + destination.file.versions = ISC_LOG_ROLLNEVER; + destination.file.maximum_size = 0; + RUNTIME_CHECK(isc_log_createchannel(logconfig, "stderr", + ISC_LOG_TOFILEDESC, + ISC_LOG_DYNAMIC, + &destination, 0) == ISC_R_SUCCESS); + RUNTIME_CHECK(isc_log_usechannel(logconfig, "stderr", + NULL, NULL) == ISC_R_SUCCESS); + + *logp = log; + return (ISC_R_SUCCESS); +} diff --git a/bin/check/check-tool.h b/bin/check/check-tool.h new file mode 100644 index 0000000000..359ed55a6b --- /dev/null +++ b/bin/check/check-tool.h @@ -0,0 +1,21 @@ +/* + * Copyright + */ + +/* $Id: check-tool.h,v 1.1 2000/12/14 21:33:11 marka Exp $ */ + +#ifndef CHECK_TOOL_H +#define CHECK_TOOL_H + +#include + +#include + +ISC_LANG_BEGINDECLS + +isc_result_t +setup_logging(isc_mem_t *mctx, isc_log_t **logp); + +ISC_LANG_ENDDECLS + +#endif diff --git a/bin/check/named-checkconf.c b/bin/check/named-checkconf.c new file mode 100644 index 0000000000..4db0158127 --- /dev/null +++ b/bin/check/named-checkconf.c @@ -0,0 +1,87 @@ +/* + * Copyright (C) 1999, 2000 Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM + * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL + * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id: named-checkconf.c,v 1.1 2000/12/14 21:33:11 marka Exp $ */ + +#include + +#include +#include + +#include +#include +#include + +#include +#include + +#include "check-tool.h" + +static isc_result_t +zonecbk(dns_c_ctx_t *ctx, dns_c_zone_t *zone, dns_c_view_t *view, void *uap) { + + UNUSED(ctx); + UNUSED(uap); + UNUSED(zone); + UNUSED(view); + + return (ISC_R_SUCCESS); +} + +static isc_result_t +optscbk(dns_c_ctx_t *ctx, void *uap) { + UNUSED(ctx); + UNUSED(uap); + + return (ISC_R_SUCCESS); +} + +int +main (int argc, char **argv) { + dns_c_ctx_t *configctx = NULL; + const char *conffile = NULL; + isc_mem_t *mctx = NULL; + dns_c_cbks_t callbacks; + isc_log_t *log = NULL; + + callbacks.zonecbk = zonecbk; + callbacks.optscbk = optscbk; + callbacks.zonecbkuap = NULL; + callbacks.optscbkuap = NULL; + + if (argc > 1) + conffile = argv[1]; + if (conffile == NULL || conffile[0] == '\0') + conffile = "/etc/named.conf"; + + RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); + + RUNTIME_CHECK(setup_logging(mctx, &log) == ISC_R_SUCCESS); + + if (dns_c_parse_namedconf(conffile, mctx, &configctx, &callbacks) != + ISC_R_SUCCESS) { + exit(1); + } + + dns_c_ctx_delete(&configctx); + + isc_log_destroy(&log); + + isc_mem_destroy(&mctx); + + return (0); +}