# HG changeset patch # User Timo Sirainen # Date 1286390971 -3600 # Node ID 6ea01abfaea9ef21f0cd013b26b0b8de734209af # Parent 092c39cf86b959f2db7dcebb5769d2123e9dadc8 quota: Log a warning if Maildir++ quota is enabled for non-Maildir storage. diff -r 092c39cf86b9 -r 6ea01abfaea9 src/plugins/quota/quota-maildir.c --- a/src/plugins/quota/quota-maildir.c Wed Oct 06 19:35:17 2010 +0100 +++ b/src/plugins/quota/quota-maildir.c Wed Oct 06 19:49:31 2010 +0100 @@ -618,16 +618,31 @@ 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->limits_initialized) + return root->maildirsize_path != NULL; + root->limits_initialized = TRUE; - if (root->maildirsize_path == NULL) { - i_warning("quota maildir: No maildir namespaces, " - "ignoring quota."); - } + 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)