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