# HG changeset patch # User Timo Sirainen # Date 1294142253 -7200 # Node ID 89f4e4cdbeacd536bca4ca4d26d2d73e819a1060 # Parent fd9c0132347571f5ce31b91a24b13815b90cf880 config: Give clear error that auth settings aren't supported inside local/remote blocks. diff -r fd9c01323475 -r 89f4e4cdbeac src/config/config-parser.c --- a/src/config/config-parser.c Tue Jan 04 13:53:17 2011 +0200 +++ b/src/config/config-parser.c Tue Jan 04 13:57:33 2011 +0200 @@ -74,6 +74,15 @@ i_assert(ret > 0); } +static bool +config_parser_is_in_localremote(struct config_section_stack *section) +{ + const struct config_filter *filter = §ion->filter; + + return filter->local_name != NULL || filter->local_bits > 0 || + filter->remote_bits > 0; +} + int config_apply_line(struct config_parser_context *ctx, const char *key, const char *line, const char *section_name) { @@ -85,6 +94,14 @@ ret = settings_parse_line(l->parser, line); if (ret > 0) { found = TRUE; + /* FIXME: remove once auth does support these. */ + if (strcmp(l->root->module_name, "auth") == 0 && + config_parser_is_in_localremote(ctx->cur_section)) { + ctx->error = p_strconcat(ctx->pool, + "Auth settings not supported inside local/remote blocks: ", + key, NULL); + return -1; + } if (section_name != NULL) config_add_type(l->parser, line, section_name); } else if (ret < 0) {