Mercurial > dovecot > core-2.2
changeset 21756:014edbaf5ab6
trash: Read settings after namespaces are loaded
Fixes Panic: file mail-namespace.c: line 709 (mail_namespace_find): assertion failed: (ns != NULL)
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Wed, 01 Mar 2017 09:15:29 +0200 |
parents | 2a8ac5c1c458 |
children | 9d825e599eb3 |
files | src/plugins/trash/trash-plugin.c |
diffstat | 1 files changed, 16 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/trash/trash-plugin.c Mon Feb 27 16:23:09 2017 +0200 +++ b/src/plugins/trash/trash-plugin.c Wed Mar 01 09:15:29 2017 +0200 @@ -348,17 +348,27 @@ } else { tuser = p_new(user->pool, struct trash_user, 1); MODULE_CONTEXT_SET(user, trash_user_module, tuser); + } +} - if (read_configuration(user, env) == 0) { - trash_next_quota_test_alloc = - quser->quota->set->test_alloc; - quser->quota->set->test_alloc = trash_quota_test_alloc; - } +static void +trash_mail_namespaces_created(struct mail_namespace *namespaces) +{ + struct mail_user *user = namespaces->user; + struct trash_user *tuser = TRASH_USER_CONTEXT(user); + struct quota_user *quser = QUOTA_USER_CONTEXT(user); + const char *env = mail_user_plugin_getenv(user, "trash"); + + if (tuser != NULL && read_configuration(user, env) == 0) { + trash_next_quota_test_alloc = + quser->quota->set->test_alloc; + quser->quota->set->test_alloc = trash_quota_test_alloc; } } static struct mail_storage_hooks trash_mail_storage_hooks = { - .mail_user_created = trash_mail_user_created + .mail_user_created = trash_mail_user_created, + .mail_namespaces_created = trash_mail_namespaces_created, }; void trash_plugin_init(struct module *module)