enum mail_storage_service_flags flags;
struct mail_storage_service_user *user;
const char *username = input->username;
- const struct setting_parser_info *user_info;
+ const struct setting_parser_info *user_info = NULL;
const struct mail_user_settings *user_set;
const char *const *userdb_fields, *error;
struct auth_user_reply reply;
mail_storage_service_seteuid_root();
}
- if (mail_storage_service_read_settings(ctx, input, user_pool,
- &user_info, &set_parser,
- error_r) < 0) {
+ if (input->unexpanded_set_parser != NULL)
+ set_parser = input->unexpanded_set_parser;
+ else if (mail_storage_service_read_settings(ctx, input, user_pool,
+ &user_info, &set_parser,
+ error_r) < 0) {
if (ctx->config_permission_denied) {
/* just restart and maybe next time we will open the
config socket before dropping privileges */
const char *forward_fields;
+ /* Use this settings parser instead of looking it up. */
+ struct setting_parser_context *unexpanded_set_parser;
+
/* Override specified global flags */
enum mail_storage_service_flags flags_override_add;
enum mail_storage_service_flags flags_override_remove;