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;