";
isc_result_t
-named_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf) {
+named_config_parsedefaults(cfg_obj_t **conf) {
isc_buffer_t b;
+ cfg_parser_t *parser = NULL;
+ isc_result_t result;
+
+ result = cfg_parser_create(isc_g_mctx, &parser);
+ if (result != ISC_R_SUCCESS) {
+ return result;
+ }
isc_buffer_init(&b, defaultconf, sizeof(defaultconf) - 1);
isc_buffer_add(&b, sizeof(defaultconf) - 1);
- return cfg_parse_buffer(parser, &b, __FILE__, 0, &cfg_type_namedconf,
- CFG_PCTX_NODEPRECATED | CFG_PCTX_NOOBSOLETE |
- CFG_PCTX_NOEXPERIMENTAL,
- conf);
+ result = cfg_parse_buffer(parser, &b, __FILE__, 0, &cfg_type_namedconf,
+ CFG_PCTX_NODEPRECATED | CFG_PCTX_NOOBSOLETE |
+ CFG_PCTX_NOEXPERIMENTAL,
+ conf);
+
+ cfg_parser_destroy(&parser);
+ return result;
}
/*
#define DEFAULT_IANA_ROOT_ZONE_PRIMARIES "_default_iana_root_zone_primaries"
isc_result_t
-named_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf);
+named_config_parsedefaults(cfg_obj_t **conf);
isc_result_t
named_config_parsefile(cfg_parser_t *parser, cfg_obj_t **conf);
* for really short timers, another for client timers, and one
* for zone timers.
*/
-EXTERN cfg_parser_t *named_g_parser INIT(NULL);
EXTERN cfg_parser_t *named_g_addparser INIT(NULL);
EXTERN const char *named_g_version INIT(PACKAGE_VERSION);
EXTERN const char *named_g_product INIT(PACKAGE_NAME);
isc_buffer_t b;
char buf[512];
#if defined(HAVE_GEOIP2)
- cfg_parser_t *parser = NULL;
cfg_obj_t *config = NULL;
const cfg_obj_t *defaults = NULL, *obj = NULL;
#endif /* if defined(HAVE_GEOIP2) */
#define RTC(x) RUNTIME_CHECK((x) == ISC_R_SUCCESS)
isc_mem_t *geoip_mctx = NULL;
isc_mem_create("geoip", &geoip_mctx);
- RTC(cfg_parser_create(geoip_mctx, &parser));
- RTC(named_config_parsedefaults(parser, &config));
+ RTC(named_config_parsedefaults(&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(&config);
- cfg_parser_destroy(&parser);
isc_mem_detach(&geoip_mctx);
#endif /* HAVE_GEOIP2 */
}
isc_timer_create(isc_loop_main(), pps_timer_tick, server,
&server->pps_timer);
- CHECKFATAL(cfg_parser_create(isc_g_mctx, &named_g_parser),
- "creating default configuration parser");
-
- CHECKFATAL(named_config_parsedefaults(named_g_parser,
- &named_g_defaultconfig),
+ CHECKFATAL(named_config_parsedefaults(&named_g_defaultconfig),
"unable to parse defaults config");
CHECKFATAL(cfg_map_get(named_g_defaultconfig, "options",
}
cfg_obj_destroy(&named_g_defaultconfig);
- cfg_parser_destroy(&named_g_parser);
cfg_parser_destroy(&named_g_addparser);
(void)named_server_saventa(server);