]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota: Move quota_settings.vsizes to struct quota
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 13 Aug 2024 11:40:22 +0000 (14:40 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:39:59 +0000 (10:39 +0200)
src/plugins/quota/quota-private.h
src/plugins/quota/quota-storage.c
src/plugins/quota/quota.c

index 7dbee0a2201d8533c946dfb19bb40ab0df3ccce5..5cc43c624687d0e1e18faca9e060dd15a43c3a39 100644 (file)
@@ -21,6 +21,7 @@ struct quota {
        enum quota_alloc_result (*test_alloc)(
                struct quota_transaction_context *ctx, uoff_t size,
                const char **error_r);
+       bool vsizes:1;
 };
 
 struct quota_settings {
@@ -32,7 +33,6 @@ struct quota_settings {
        uoff_t max_mail_size;
        unsigned int max_messages_per_mailbox;
        const char *quota_exceeded_msg;
-       bool vsizes:1;
 };
 
 struct quota_rule {
index b853d87b7b81d20b91cfc0b2beba2cf0178cb09a..b0fdd3190995e8fb3ab8b66669012f95c9aee2ff 100644 (file)
@@ -92,7 +92,7 @@ static void quota_mail_expunge(struct mail *_mail)
           the mail at the same time. In here we'll just save the message's
           physical size and do the quota freeing later when the message was
           known to be expunged. */
-       if (quser->quota->set->vsizes)
+       if (quser->quota->vsizes)
                ret = mail_get_virtual_size(_mail, &size);
        else
                ret = mail_get_physical_size(_mail, &size);
@@ -510,7 +510,7 @@ static void quota_mailbox_sync_notify(struct mailbox *box, uint32_t uid,
                /* FIXME: it's not ideal that we do the vsize update here, but
                   this is the easiest place for it for now.. maybe the mail
                   size checking code could be moved to lib-storage */
-               if (ibox->vsize_update != NULL && quser->quota->set->vsizes)
+               if (ibox->vsize_update != NULL && quser->quota->vsizes)
                        index_mailbox_vsize_hdr_expunge(ibox->vsize_update, uid, *sizep);
                return;
        }
@@ -532,7 +532,7 @@ static void quota_mailbox_sync_notify(struct mailbox *box, uint32_t uid,
        }
        if (!mail_set_uid(qbox->expunge_qt->tmp_mail, uid))
                ;
-       else if (!quser->quota->set->vsizes) {
+       else if (!quser->quota->vsizes) {
                if (mail_get_physical_size(qbox->expunge_qt->tmp_mail, &size) == 0) {
                        quota_free_bytes(qbox->expunge_qt, size);
                        return;
index a1d9d844802b58ec2033ed89d8620248dc7e7dc7..914d2c324b72bfe08e5098e20b67c0af800eb7bb 100644 (file)
@@ -460,7 +460,7 @@ int quota_init(struct quota_settings *quota_set, struct mail_user *user,
                           size, use this for all backends. This is not ideal, but
                           works. */
                        if (root->set->backend->use_vsize)
-                               quota->set->vsizes = TRUE;
+                               quota->vsizes = TRUE;
                }
        }
        *quota_r = quota;
@@ -1277,7 +1277,7 @@ void quota_transaction_rollback(struct quota_transaction_context **_ctx)
 static int quota_get_mail_size(struct quota_transaction_context *ctx,
                               struct mail *mail, uoff_t *size_r)
 {
-       if (ctx->quota->set->vsizes)
+       if (ctx->quota->vsizes)
                return mail_get_virtual_size(mail, size_r);
        else
                return mail_get_physical_size(mail, size_r);