From: Timo Sirainen Date: Tue, 8 Jul 2008 10:17:31 +0000 (+0530) Subject: maildir: Add ,S= to maildir filename with all quota backends. X-Git-Tag: 1.2.alpha1~191 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ccd44abfe14f51cc1f6d8c0ec1aa6dc31242e2d3;p=thirdparty%2Fdovecot%2Fcore.git maildir: Add ,S= to maildir filename with all quota backends. --HG-- branch : HEAD --- diff --git a/src/plugins/quota/quota-maildir.c b/src/plugins/quota/quota-maildir.c index d4f9884f2e..053ddca876 100644 --- a/src/plugins/quota/quota-maildir.c +++ b/src/plugins/quota/quota-maildir.c @@ -676,25 +676,19 @@ maildir_quota_root_storage_added(struct quota_root *_root, } static void -maildir_quota_storage_added(struct quota *quota, - struct mail_storage *_storage) +maildir_quota_storage_added(struct quota *quota, struct mail_storage *storage) { - struct maildir_storage *storage = - (struct maildir_storage *)_storage; struct quota_root **roots; unsigned int i, count; - if (strcmp(_storage->name, "maildir") != 0) + if (strcmp(storage->name, "maildir") != 0) return; roots = array_get_modifiable("a->roots, &count); for (i = 0; i < count; i++) { if (roots[i]->backend.name == quota_backend_maildir.name) - maildir_quota_root_storage_added(roots[i], _storage); + maildir_quota_root_storage_added(roots[i], storage); } - - /* For newly generated filenames add ,S=size. */ - storage->save_size_in_filename = TRUE; } static const char *const * diff --git a/src/plugins/quota/quota.c b/src/plugins/quota/quota.c index dcebdce3bf..7f512944f7 100644 --- a/src/plugins/quota/quota.c +++ b/src/plugins/quota/quota.c @@ -4,6 +4,7 @@ #include "array.h" #include "hash.h" #include "mailbox-list-private.h" +#include "maildir-storage.h" #include "quota-private.h" #include "quota-fs.h" @@ -424,6 +425,18 @@ static bool quota_root_get_rule_limits(struct quota_root *root, return found; } +static void quota_maildir_storage_set(struct mail_storage *storage) +{ + /* FIXME: a bit ugly location for this code. */ + if (strcmp(storage->name, "maildir") == 0) { + /* For newly generated filenames add ,S=size. */ + struct maildir_storage *mstorage = + (struct maildir_storage *)storage; + + mstorage->save_size_in_filename = TRUE; + } +} + void quota_add_user_storage(struct quota *quota, struct mail_storage *storage) { struct quota_root *const *roots; @@ -433,6 +446,8 @@ void quota_add_user_storage(struct quota *quota, struct mail_storage *storage) unsigned int i, j, count; bool is_file; + quota_maildir_storage_set(storage); + /* first check if there already exists a storage with the exact same path. we don't want to count them twice. */ path = mail_storage_get_mailbox_path(storage, "", &is_file);