]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota: maildir++ - Simplify INBOX namespace lookup
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 22 Dec 2023 19:18:35 +0000 (14:18 -0500)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:11 +0000 (12:34 +0200)
The INBOX namespace always exists - there is no need to have a fallback.

src/plugins/quota/quota-maildir.c

index 0169c18748e998a92fa80baefaa2e34fedf36f34..58d8727251892a6462d2c58f7c049c5919e5fa50 100644 (file)
@@ -238,8 +238,7 @@ static int maildirsize_write(struct maildir_quota_root *root, const char *path)
        const struct mail_storage_settings *set =
                mail_user_set_get_storage_set(root->root.quota->user);
        struct quota_root *_root = &root->root;
-       struct mail_namespace *const *namespaces;
-       unsigned int i, count;
+       struct mail_namespace *inbox_ns;
        struct mailbox_permissions perm;
        const char *p, *dir;
        string_t *str, *temp_path;
@@ -248,20 +247,9 @@ static int maildirsize_write(struct maildir_quota_root *root, const char *path)
        i_assert(root->fd == -1);
 
        /* figure out what permissions we should use for maildirsize.
-          use the inbox namespace's permissions if possible. */
-       perm.file_create_mode = 0600; perm.dir_create_mode = 0700;
-       perm.file_create_gid = (gid_t)-1;
-       perm.file_create_gid_origin = "default";
-       namespaces = array_get(&root->root.quota->namespaces, &count);
-       i_assert(count > 0);
-       for (i = 0; i < count; i++) {
-               if ((namespaces[i]->flags & NAMESPACE_FLAG_INBOX_USER) == 0)
-                       continue;
-
-               mailbox_list_get_root_permissions(namespaces[i]->list,
-                                                 &perm);
-               break;
-       }
+          use the inbox namespace's permissions. */
+       inbox_ns = mail_namespace_find_inbox(root->root.quota->user->namespaces);
+       mailbox_list_get_root_permissions(inbox_ns->list, &perm);
 
        dotlock_settings.use_excl_lock = set->dotlock_use_excl;
        dotlock_settings.nfs_flush = set->mail_nfs_storage;