Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8399:155700456194 HEAD
Fixed dbox to work with Maildir++ layout.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 15 Nov 2008 18:43:54 +0200 |
parents | d331b8fc8ba8 |
children | ce4779b95fc8 |
files | src/lib-storage/index/dbox/dbox-storage.c src/lib-storage/list/mailbox-list-fs.c src/lib-storage/list/mailbox-list-maildir.c src/lib-storage/mailbox-list-private.h src/lib-storage/mailbox-list.c src/lib-storage/mailbox-list.h |
diffstat | 6 files changed, 17 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/dbox/dbox-storage.c Sat Nov 15 18:42:50 2008 +0200 +++ b/src/lib-storage/index/dbox/dbox-storage.c Sat Nov 15 18:43:54 2008 +0200 @@ -463,6 +463,11 @@ if (dbox_delete_nonrecursive(list, alt_path, name) < 0) return -1; } + if (*list->set.maildir_name == '\0') { + /* everything was in the one directory that was + already deleted succesfully. */ + return 0; + } /* try to delete the directory also */ deleted = TRUE; path = mailbox_list_get_path(list, name,
--- a/src/lib-storage/list/mailbox-list-fs.c Sat Nov 15 18:42:50 2008 +0200 +++ b/src/lib-storage/list/mailbox-list-fs.c Sat Nov 15 18:43:54 2008 +0200 @@ -356,6 +356,7 @@ struct mailbox_list fs_mailbox_list = { MEMBER(name) "fs", MEMBER(hierarchy_sep) '/', + MEMBER(props) 0, MEMBER(mailbox_name_max_length) PATH_MAX, {
--- a/src/lib-storage/list/mailbox-list-maildir.c Sat Nov 15 18:42:50 2008 +0200 +++ b/src/lib-storage/list/mailbox-list-maildir.c Sat Nov 15 18:43:54 2008 +0200 @@ -438,6 +438,7 @@ struct mailbox_list maildir_mailbox_list = { MEMBER(name) MAILBOX_LIST_NAME_MAILDIRPLUSPLUS, MEMBER(hierarchy_sep) '.', + MEMBER(props) MAILBOX_LIST_PROP_NO_MAILDIR_NAME, MEMBER(mailbox_name_max_length) PATH_MAX, { @@ -464,6 +465,7 @@ struct mailbox_list imapdir_mailbox_list = { MEMBER(name) MAILBOX_LIST_NAME_IMAPDIR, MEMBER(hierarchy_sep) '.', + MEMBER(props) MAILBOX_LIST_PROP_NO_MAILDIR_NAME, MEMBER(mailbox_name_max_length) PATH_MAX, {
--- a/src/lib-storage/mailbox-list-private.h Sat Nov 15 18:42:50 2008 +0200 +++ b/src/lib-storage/mailbox-list-private.h Sat Nov 15 18:43:54 2008 +0200 @@ -67,6 +67,7 @@ struct mailbox_list { const char *name; char hierarchy_sep; + enum mailbox_list_properties props; size_t mailbox_name_max_length; struct mailbox_list_vfuncs v;
--- a/src/lib-storage/mailbox-list.c Sat Nov 15 18:42:50 2008 +0200 +++ b/src/lib-storage/mailbox-list.c Sat Nov 15 18:43:54 2008 +0200 @@ -213,7 +213,9 @@ list->set.inbox_path = p_strdup(list->pool, set->inbox_path); list->set.subscription_fname = p_strdup(list->pool, set->subscription_fname); - list->set.maildir_name = p_strdup(list->pool, set->maildir_name); + list->set.maildir_name = + (list->props & MAILBOX_LIST_PROP_NO_MAILDIR_NAME) != 0 ? "" : + p_strdup(list->pool, set->maildir_name); list->set.mail_storage_flags = set->mail_storage_flags; list->set.lock_method = set->lock_method;
--- a/src/lib-storage/mailbox-list.h Sat Nov 15 18:42:50 2008 +0200 +++ b/src/lib-storage/mailbox-list.h Sat Nov 15 18:43:54 2008 +0200 @@ -7,6 +7,11 @@ struct mailbox_list; struct mailbox_list_iterate_context; +enum mailbox_list_properties { + /* maildir_name must always be empty */ + MAILBOX_LIST_PROP_NO_MAILDIR_NAME = 0x01 +}; + enum mailbox_list_flags { /* Print debugging information while initializing the driver */ MAILBOX_LIST_FLAG_DEBUG = 0x01,