const char **error_r);
static bool
-mail_user_set_get_mail_debug(const struct setting_parser_info *user_info,
+mail_user_set_get_mail_debug(const struct setting_parser_context *set_parser,
+ const struct setting_parser_info *user_info,
const struct mail_user_settings *user_set)
{
const struct mail_storage_settings *mail_set;
- mail_set = mail_user_set_get_driver_settings(user_info, user_set,
- &mail_storage_setting_parser_info);
+ mail_set = mail_user_set_get_driver_settings(set_parser, user_info,
+ user_set, &mail_storage_setting_parser_info);
return mail_set->mail_debug;
}
static void
mail_storage_service_first_init(struct mail_storage_service_ctx *ctx,
+ const struct setting_parser_context *set_parser,
const struct setting_parser_info *user_info,
const struct mail_user_settings *user_set,
enum mail_storage_service_flags service_flags)
{
enum auth_master_flags flags = 0;
- ctx->debug = mail_user_set_get_mail_debug(user_info, user_set) ||
+ ctx->debug = mail_user_set_get_mail_debug(set_parser, user_info, user_set) ||
(service_flags & MAIL_STORAGE_SERVICE_FLAG_DEBUG) != 0;
if (ctx->debug)
flags |= AUTH_MASTER_FLAG_DEBUG;
static int
mail_storage_service_load_modules(struct mail_storage_service_ctx *ctx,
+ const struct setting_parser_context *set_parser,
const struct setting_parser_info *user_info,
const struct mail_user_settings *user_set,
const char **error_r)
mod_set.binary_name = master_service_get_name(ctx->service);
mod_set.setting_name = "mail_plugins";
mod_set.require_init_funcs = TRUE;
- mod_set.debug = mail_user_set_get_mail_debug(user_info, user_set);
+ mod_set.debug = mail_user_set_get_mail_debug(set_parser, user_info, user_set);
return module_dir_try_load_missing(&mail_storage_service_modules,
user_set->mail_plugin_dir,
mail_storage_service_set_log_prefix(ctx, user_set, NULL, input, NULL);
if (ctx->conn == NULL)
- mail_storage_service_first_init(ctx, user_info, user_set, flags);
+ mail_storage_service_first_init(ctx, set_parser, user_info, user_set, flags);
/* load global plugins */
- if (mail_storage_service_load_modules(ctx, user_info, user_set, error_r) < 0) {
+ if (mail_storage_service_load_modules(ctx, set_parser, user_info, user_set, error_r) < 0) {
pool_unref(&user_pool);
return -1;
}
/* load per-user plugins */
if (ret > 0) {
- if (mail_storage_service_load_modules(ctx, user_info,
+ if (mail_storage_service_load_modules(ctx, user->set_parser,
+ user_info,
user->user_set,
error_r) < 0) {
ret = -2;
user_set = settings_parser_get_root_set(set_parser,
&mail_user_setting_parser_info);
- mail_storage_service_first_init(ctx, user_info, user_set, ctx->flags);
+ mail_storage_service_first_init(ctx, set_parser, user_info, user_set, ctx->flags);
pool_unref(&temp_pool);
}
const struct mail_storage_settings *
mail_storage_service_user_get_mail_set(struct mail_storage_service_user *user)
{
- return mail_user_set_get_driver_settings(
+ return mail_user_set_get_driver_settings(user->set_parser,
user->user_info, user->user_set,
&mail_storage_setting_parser_info);
}
};
const void *
-mail_user_set_get_driver_settings(const struct setting_parser_info *base_info,
+mail_user_set_get_driver_settings(const struct setting_parser_context *set_parser ATTR_UNUSED,
+ const struct setting_parser_info *base_info,
const struct mail_user_settings *set,
const struct setting_parser_info *info)
{
const struct mail_storage_settings *
mail_user_set_get_storage_set(struct mail_user *user)
{
- return mail_user_set_get_driver_settings(user->set_info, user->set,
+ return mail_user_set_get_driver_settings(user->set_parser,
+ user->set_info, user->set,
&mail_storage_setting_parser_info);
}
const void *mail_namespace_get_driver_settings(struct mail_namespace *ns,
struct mail_storage *storage)
{
- return mail_user_set_get_driver_settings(storage->user->set_info,
+ return mail_user_set_get_driver_settings(storage->user->set_parser,
+ storage->user->set_info,
ns->user_set, storage->v.get_setting_parser_info());
}