dovecot-2.0: lib-storage: When renaming a mailbox, make sure any...

dovecot at dovecot.org dovecot at dovecot.org
Thu Jul 1 19:19:47 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/f4b809b83a13
changeset: 11679:f4b809b83a13
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jul 01 17:19:41 2010 +0100
description:
lib-storage: When renaming a mailbox, make sure any unnecessary directories get deleted.

diffstat:

 src/lib-storage/list/mailbox-list-delete.c |  5 ++---
 src/lib-storage/list/mailbox-list-delete.h |  5 +++++
 src/lib-storage/list/mailbox-list-fs.c     |  3 +++
 3 files changed, 10 insertions(+), 3 deletions(-)

diffs (48 lines):

diff -r 636fb64394a5 -r f4b809b83a13 src/lib-storage/list/mailbox-list-delete.c
--- a/src/lib-storage/list/mailbox-list-delete.c	Thu Jul 01 17:18:49 2010 +0100
+++ b/src/lib-storage/list/mailbox-list-delete.c	Thu Jul 01 17:19:41 2010 +0100
@@ -234,9 +234,8 @@
 	return 0;
 }
 
-static void
-mailbox_list_delete_until_root(struct mailbox_list *list, const char *path,
-			       enum mailbox_list_path_type type)
+void mailbox_list_delete_until_root(struct mailbox_list *list, const char *path,
+				    enum mailbox_list_path_type type)
 {
 	const char *root_dir, *p;
 	unsigned int len;
diff -r 636fb64394a5 -r f4b809b83a13 src/lib-storage/list/mailbox-list-delete.h
--- a/src/lib-storage/list/mailbox-list-delete.h	Thu Jul 01 17:18:49 2010 +0100
+++ b/src/lib-storage/list/mailbox-list-delete.h	Thu Jul 01 17:19:41 2010 +0100
@@ -1,6 +1,8 @@
 #ifndef MAILBOX_LIST_DELETE_H
 #define MAILBOX_LIST_DELETE_H
 
+enum mailbox_list_path_type;
+
 int mailbox_list_delete_maildir_via_trash(struct mailbox_list *list,
 					  const char *name,
 					  const char *trash_dir);
@@ -11,4 +13,7 @@
 					     bool rmdir_path);
 void mailbox_list_delete_finish(struct mailbox_list *list, const char *name);
 
+void mailbox_list_delete_until_root(struct mailbox_list *list, const char *path,
+				    enum mailbox_list_path_type type);
+
 #endif
diff -r 636fb64394a5 -r f4b809b83a13 src/lib-storage/list/mailbox-list-fs.c
--- a/src/lib-storage/list/mailbox-list-fs.c	Thu Jul 01 17:18:49 2010 +0100
+++ b/src/lib-storage/list/mailbox-list-fs.c	Thu Jul 01 17:19:41 2010 +0100
@@ -460,6 +460,9 @@
 				"rmdir(%s) failed: %m", oldpath);
 		}
 	}
+
+	/* avoid leaving empty directories lying around */
+	mailbox_list_delete_until_root(oldlist, oldpath, type);
 	return 0;
 }
 


More information about the dovecot-cvs mailing list