From 0171540a6764f714b8b753ba209ec9a83c213d25 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 24 Jun 2010 16:27:20 +0100 Subject: [PATCH] config: Added hook_config_parser_begin so plugins can change default settings. --HG-- branch : HEAD --- src/config/config-parser-private.h | 2 ++ src/config/config-parser.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/config/config-parser-private.h b/src/config/config-parser-private.h index efab076465..49849e4c6b 100644 --- a/src/config/config-parser-private.h +++ b/src/config/config-parser-private.h @@ -54,6 +54,8 @@ struct config_parser_context { unsigned int expand_values:1; }; +extern void (*hook_config_parser_begin)(struct config_parser_context *ctx); + int config_apply_line(struct config_parser_context *ctx, const char *key, const char *line, const char *section_name); void config_parser_apply_line(struct config_parser_context *ctx, diff --git a/src/config/config-parser.c b/src/config/config-parser.c index e57ec490a9..5c0f9370dd 100644 --- a/src/config/config-parser.c +++ b/src/config/config-parser.c @@ -35,6 +35,7 @@ static const enum settings_parser_flags settings_parser_flags = struct config_module_parser *config_module_parsers; struct config_filter_context *config_filter; struct module *modules; +void (*hook_config_parser_begin)(struct config_parser_context *ctx); static const char *info_type_name_find(const struct setting_parser_info *info) { @@ -818,6 +819,8 @@ int config_parse_file(const char *path, bool expand_values, const char *module, ctx.cur_input->input = i_stream_create_fd(fd, (size_t)-1, TRUE); i_stream_set_return_partial_line(ctx.cur_input->input, TRUE); old_settings_init(&ctx); + if (hook_config_parser_begin != NULL) + hook_config_parser_begin(&ctx); prevfile: while ((line = i_stream_read_next_line(ctx.cur_input->input)) != NULL) { -- 2.47.3