]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mailbox_list_get_permissions() - Use index dir with ITERINDEX
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 26 Jun 2017 15:50:24 +0000 (18:50 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 3 Jul 2017 12:25:27 +0000 (15:25 +0300)
src/lib-storage/mailbox-list.c

index f9077bfc309aaccba46c786a1184cff1ddf97204..117f7026257dd40c32a7d3c26ee52fbcb677e210 100644 (file)
@@ -967,8 +967,13 @@ mailbox_list_get_permissions_internal(struct mailbox_list *list,
        permissions_r->file_create_gid = (gid_t)-1;
        permissions_r->file_create_gid_origin = "defaults";
 
-       if ((list->flags & MAILBOX_LIST_FLAG_NO_MAIL_FILES) != 0) {
-               /* mail files don't exist in storage, but index files might. */
+       if (list->set.iter_from_index_dir ||
+           (list->flags & MAILBOX_LIST_FLAG_NO_MAIL_FILES) != 0) {
+               /* a) iterating from index dir. Use the index dir's permissions
+                  as well, since they might be in a faster storage.
+
+                  b) mail files don't exist in storage, but index files
+                  might. */
                (void)mailbox_list_get_path(list, name,
                        MAILBOX_LIST_PATH_TYPE_INDEX, &path);
        }