changeset 1579:a0207c0adf7e HEAD

When deleting directory, delete .imap dir under it first.
author Timo Sirainen <tss@iki.fi>
date Thu, 26 Jun 2003 02:31:03 +0300
parents ab2fb3c6a12b
children a3de39b92838
files src/lib-storage/index/mbox/mbox-storage.c
diffstat 1 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/mbox/mbox-storage.c	Thu Jun 26 02:15:34 2003 +0300
+++ b/src/lib-storage/index/mbox/mbox-storage.c	Thu Jun 26 02:31:03 2003 +0300
@@ -497,7 +497,20 @@
 	}
 
 	if (S_ISDIR(st.st_mode)) {
-		/* deleting a folder, only allow it if it's empty */
+		/* deleting a folder, only allow it if it's empty.
+		   Delete .imap folder before to make sure it goes empty. */
+		index_dir = t_strconcat(storage->index_dir, "/", name,
+					"/.imap", NULL);
+
+		if (index_dir != NULL && rmdir(index_dir) < 0 &&
+		    !ENOTFOUND(errno) && errno != ENOTEMPTY) {
+			if (!mbox_handle_errors(storage)) {
+				mail_storage_set_critical(storage,
+					"rmdir() failed for %s: %m", index_dir);
+				return FALSE;
+			}
+		}
+
 		if (rmdir(path) == 0)
 			return TRUE;