Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4339:858ca16c704b HEAD
Convert subscriptions also.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 16 Jun 2006 12:22:16 +0300 |
parents | 3f6e11e5ed2d |
children | 31e87bda1362 |
files | src/plugins/convert/convert-storage.c |
diffstat | 1 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/convert/convert-storage.c Fri Jun 16 12:21:34 2006 +0300 +++ b/src/plugins/convert/convert-storage.c Fri Jun 16 12:22:16 2006 +0300 @@ -180,6 +180,28 @@ return ret; } +static int mailbox_list_copy_subscriptions(struct mail_storage *source_storage, + struct mail_storage *dest_storage) +{ + struct mailbox_list_context *iter; + struct mailbox_list *list; + int ret = 0; + + iter = mail_storage_mailbox_list_init(source_storage, "", "*", + MAILBOX_LIST_SUBSCRIBED | + MAILBOX_LIST_FAST_FLAGS); + while ((list = mail_storage_mailbox_list_next(iter)) != NULL) { + if (mail_storage_set_subscribed(dest_storage, list->name, + TRUE) < 0) { + ret = -1; + break; + } + } + if (mail_storage_mailbox_list_deinit(&iter) < 0) + ret = -1; + return ret; +} + int convert_storage(const char *user, const char *home_dir, const char *source_data, const char *dest_data) { @@ -225,6 +247,10 @@ ret = -1; } else { ret = mailbox_list_copy(source_storage, dest_storage, dotlock); + if (ret == 0) { + ret = mailbox_list_copy_subscriptions(source_storage, + dest_storage); + } } if (ret == 0) {