From: Timo Sirainen Date: Wed, 6 Oct 2010 18:49:31 +0000 (+0100) Subject: quota: Log a warning if Maildir++ quota is enabled for non-Maildir storage. X-Git-Tag: 2.0.6~76 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=282142061c85f892e52154e81b9f8d4393b3b0c3;p=thirdparty%2Fdovecot%2Fcore.git quota: Log a warning if Maildir++ quota is enabled for non-Maildir storage. --- diff --git a/src/plugins/quota/quota-maildir.c b/src/plugins/quota/quota-maildir.c index 41693a0d68..51f3f6eb77 100644 --- a/src/plugins/quota/quota-maildir.c +++ b/src/plugins/quota/quota-maildir.c @@ -618,16 +618,31 @@ static int maildirsize_read(struct maildir_quota_root *root) static bool maildirquota_limits_init(struct maildir_quota_root *root) { - if (!root->limits_initialized) { - root->limits_initialized = TRUE; + struct mailbox_list *list; + struct mail_storage *storage; + const char *name = ""; - if (root->maildirsize_path == NULL) { - i_warning("quota maildir: No maildir namespaces, " - "ignoring quota."); - } + if (root->limits_initialized) + return root->maildirsize_path != NULL; + root->limits_initialized = TRUE; + + if (root->maildirsize_ns == NULL) { + i_assert(root->maildirsize_path == NULL); + return FALSE; } + i_assert(root->maildirsize_path != NULL); - return root->maildirsize_path != NULL; + list = root->maildirsize_ns->list; + if (mailbox_list_get_storage(&list, &name, &storage) == 0 && + strcmp(storage->name, MAILDIR_STORAGE_NAME) != 0) { + /* non-maildir namespace, skip */ + i_warning("quota: Namespace '%s' is not Maildir, " + "skipping for Maildir++ quota", + root->maildirsize_ns->prefix); + root->maildirsize_path = NULL; + return FALSE; + } + return TRUE; } static int maildirquota_read_limits(struct maildir_quota_root *root)