changeset 22297:08851deea49c

lib-storage: mailbox_list_get_permissions() - Use index dir with ITERINDEX
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 26 Jun 2017 18:50:24 +0300
parents 0dd7baafb46e
children c36d34f5d759
files src/lib-storage/mailbox-list.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mailbox-list.c	Mon Jun 26 18:46:30 2017 +0300
+++ b/src/lib-storage/mailbox-list.c	Mon Jun 26 18:50:24 2017 +0300
@@ -967,8 +967,13 @@
 	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);
 	}