]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Have 'named -V' report geoip-directory
authorMark Andrews <marka@isc.org>
Tue, 5 Nov 2019 01:56:58 +0000 (12:56 +1100)
committerMark Andrews <marka@isc.org>
Wed, 6 Nov 2019 01:28:52 +0000 (12:28 +1100)
(cherry picked from commit 2eaa75c3801252e6dd7a40dd87618bd07a915e20)

bin/named/main.c

index 7e4273add8f3c2700a535d7323c9da4a5b5954cb..15dbce232393660576899b7b475e5492ac3e53c0 100644 (file)
@@ -66,6 +66,7 @@
 #include <ns/interfacemgr.h>
 
 #include <named/builtin.h>
+#include <named/config.h>
 #include <named/control.h>
 #include <named/fuzz.h>
 #include <named/globals.h>     /* Explicit, though named/log.h includes it. */
@@ -448,6 +449,12 @@ set_flags(const char *arg, struct flag_def *defs, unsigned int *ret) {
 static void
 printversion(bool verbose) {
        char rndcconf[PATH_MAX], *dot = NULL;
+#if defined(HAVE_GEOIP2)
+       isc_mem_t *mctx = NULL;
+       cfg_parser_t *parser = NULL;
+       cfg_obj_t *config = NULL;
+       const cfg_obj_t *defaults = NULL, *obj = NULL;
+#endif
 
        printf("%s %s%s%s <id:%s>\n",
               named_g_product, named_g_version,
@@ -534,7 +541,20 @@ OPENSSL_VERSION_NUMBER >= 0x10100000L /* 1.1.0 or higher */
        printf("  nsupdate session key: %s\n", named_g_defaultsessionkeyfile);
        printf("  named PID file:       %s\n", named_g_defaultpidfile);
        printf("  named lock file:      %s\n", named_g_defaultlockfile);
-
+#if defined(HAVE_GEOIP2)
+#define RTC(x) RUNTIME_CHECK((x) == ISC_R_SUCCESS)
+       RTC(isc_mem_create(0, 0, &mctx));
+       RTC(cfg_parser_create(mctx, named_g_lctx, &parser));
+       RTC(named_config_parsedefaults(parser, &config));
+       RTC(cfg_map_get(config, "options", &defaults));
+       RTC(cfg_map_get(defaults, "geoip-directory", &obj));
+       if (cfg_obj_isstring(obj)) {
+               printf("  geoip-directory:      %s\n", cfg_obj_asstring(obj));
+       }
+       cfg_obj_destroy(parser, &config);
+       cfg_parser_destroy(&parser);
+       isc_mem_detach(&mctx);
+#endif /* HAVE_GEOIP2 */
 }
 
 static void