Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5531:435f61888541 HEAD
If directory for destination storage doesn't exist, create it.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 07 Apr 2007 11:07:52 +0300 |
parents | eaea98799f5a |
children | b8dd889066ca |
files | src/plugins/convert/convert-storage.c |
diffstat | 1 files changed, 9 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/convert/convert-storage.c Sat Apr 07 11:04:55 2007 +0300 +++ b/src/plugins/convert/convert-storage.c Sat Apr 07 11:07:52 2007 +0300 @@ -253,16 +253,19 @@ { struct mail_namespace *source_ns, *dest_ns; struct dotlock *dotlock; - enum mail_storage_flags flags; + enum mail_storage_flags src_flags, dest_flags; enum file_lock_method lock_method; const char *path; int ret; source_ns = mail_namespaces_init_empty(pool_datastack_create()); - mail_storage_parse_env(&flags, &lock_method); - flags |= MAIL_STORAGE_FLAG_NO_AUTOCREATE | MAIL_STORAGE_FLAG_HAS_INBOX; + mail_storage_parse_env(&src_flags, &lock_method); + src_flags |= MAIL_STORAGE_FLAG_HAS_INBOX; + dest_flags = src_flags; + + src_flags |= MAIL_STORAGE_FLAG_NO_AUTOCREATE; if (mail_storage_create(source_ns, NULL, source_data, user, - flags, lock_method) < 0) { + src_flags, lock_method) < 0) { /* No need for conversion. */ return 0; } @@ -282,7 +285,7 @@ reopen the source storage */ mail_storage_destroy(&source_ns->storage); if (mail_storage_create(source_ns, NULL, source_data, user, - flags, lock_method) < 0) { + src_flags, lock_method) < 0) { /* No need for conversion anymore. */ file_dotlock_delete(&dotlock); return 0; @@ -290,7 +293,7 @@ dest_ns = mail_namespaces_init_empty(pool_datastack_create()); if (mail_storage_create(dest_ns, NULL, dest_data, user, - flags, lock_method) < 0) { + dest_flags, lock_method) < 0) { i_error("Mailbox conversion: Failed to create destination " "storage with data: %s", dest_data); ret = -1;