diff --git a/src/lib-storage/mailbox-list-private.h b/src/lib-storage/mailbox-list-private.h index 930057edee..ac5d28b76c 100644 --- a/src/lib-storage/mailbox-list-private.h +++ b/src/lib-storage/mailbox-list-private.h @@ -220,6 +220,9 @@ int mailbox_list_dirent_is_alias_symlink(struct mailbox_list *list, const struct dirent *d); bool mailbox_list_try_get_absolute_path(struct mailbox_list *list, const char **name); +void mailbox_permissions_copy(struct mailbox_permissions *dest, + const struct mailbox_permissions *src, + pool_t pool); void mailbox_list_add_change(struct mailbox_list *list, enum mailbox_log_record_type type, diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index c46f1977a3..3eb2d38af7 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -1025,6 +1025,15 @@ void mailbox_list_get_root_permissions(struct mailbox_list *list, } } +void mailbox_permissions_copy(struct mailbox_permissions *dest, + const struct mailbox_permissions *src, + pool_t pool) +{ + *dest = *src; + dest->file_create_gid_origin = + p_strdup(pool, src->file_create_gid_origin); +} + static const char * get_expanded_path(const char *unexpanded_start, const char *unexpanded_stop, const char *expanded_full)