changeset 5318:3a3906587641 HEAD

Create index/control dirs if they don't exist
author Timo Sirainen <tss@iki.fi>
date Thu, 15 Mar 2007 03:47:10 +0200
parents 4bc257a1874e
children 0fc29ba873f1
files src/lib-storage/mailbox-list.c
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mailbox-list.c	Thu Mar 15 03:34:44 2007 +0200
+++ b/src/lib-storage/mailbox-list.c	Thu Mar 15 03:47:10 2007 +0200
@@ -3,6 +3,7 @@
 #include "lib.h"
 #include "array.h"
 #include "ioloop.h"
+#include "mkdir-parents.h"
 #include "mailbox-list-private.h"
 
 #include <time.h>
@@ -106,6 +107,17 @@
 		strcmp(set->control_dir, set->root_dir) == 0 ? NULL :
 		p_strdup(list->pool, set->control_dir);
 
+	if (list->set.index_dir != NULL) {
+		if (mkdir_parents(list->set.index_dir, 0700) < 0 &&
+		    errno != EEXIST)
+			i_error("mkdir(%s) failed: %m", list->set.index_dir);
+	}
+	if (list->set.control_dir != NULL) {
+		if (mkdir_parents(list->set.control_dir, 0700) < 0 &&
+		    errno != EEXIST)
+			i_error("mkdir(%s) failed: %m", list->set.control_dir);
+	}
+
 	list->set.inbox_path = p_strdup(list->pool, set->inbox_path);
 	list->set.subscription_fname =
 		p_strdup(list->pool, set->subscription_fname);