mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-23 02:28:55 -04:00
remove global named defaults parser
Remove the global named defaults parser. Instead, a parser is created during the execution time of named_config_parsedefaults(). This simplifies the API (no parser to pass around) and the life-cycle of the default configuration tree (it doesn't depends on a parser instance).
This commit is contained in:
parent
7706f5acec
commit
a72b8a1a60
5 changed files with 18 additions and 17 deletions
|
|
@ -361,15 +361,25 @@ remote-servers " DEFAULT_IANA_ROOT_ZONE_PRIMARIES " {\n\
|
|||
";
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
#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);
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ EXTERN bool named_g_run_done INIT(false);
|
|||
* 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);
|
||||
|
|
|
|||
|
|
@ -513,7 +513,6 @@ printversion(bool verbose) {
|
|||
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) */
|
||||
|
|
@ -611,15 +610,13 @@ printversion(bool verbose) {
|
|||
#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 */
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9529,11 +9529,7 @@ run_server(void *arg) {
|
|||
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",
|
||||
|
|
@ -9595,7 +9591,6 @@ shutdown_server(void *arg) {
|
|||
}
|
||||
|
||||
cfg_obj_destroy(&named_g_defaultconfig);
|
||||
cfg_parser_destroy(&named_g_parser);
|
||||
cfg_parser_destroy(&named_g_addparser);
|
||||
|
||||
(void)named_server_saventa(server);
|
||||
|
|
|
|||
Loading…
Reference in a new issue