dovecot-1.2: Fixed dbox to work with Maildir++ layout.
dovecot at dovecot.org
dovecot at dovecot.org
Sat Nov 15 18:43:58 EET 2008
details: http://hg.dovecot.org/dovecot-1.2/rev/155700456194
changeset: 8399:155700456194
user: Timo Sirainen <tss at iki.fi>
date: Sat Nov 15 18:43:54 2008 +0200
description:
Fixed dbox to work with Maildir++ layout.
diffstat:
6 files changed, 17 insertions(+), 1 deletion(-)
src/lib-storage/index/dbox/dbox-storage.c | 5 +++++
src/lib-storage/list/mailbox-list-fs.c | 1 +
src/lib-storage/list/mailbox-list-maildir.c | 2 ++
src/lib-storage/mailbox-list-private.h | 1 +
src/lib-storage/mailbox-list.c | 4 +++-
src/lib-storage/mailbox-list.h | 5 +++++
diffs (85 lines):
diff -r d331b8fc8ba8 -r 155700456194 src/lib-storage/index/dbox/dbox-storage.c
--- 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
@@ -462,6 +462,11 @@ dbox_list_delete_mailbox(struct mailbox_
if (alt_path != NULL) {
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;
diff -r d331b8fc8ba8 -r 155700456194 src/lib-storage/list/mailbox-list-fs.c
--- 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 = {
struct mailbox_list fs_mailbox_list = {
MEMBER(name) "fs",
MEMBER(hierarchy_sep) '/',
+ MEMBER(props) 0,
MEMBER(mailbox_name_max_length) PATH_MAX,
{
diff -r d331b8fc8ba8 -r 155700456194 src/lib-storage/list/mailbox-list-maildir.c
--- 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
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
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,
{
diff -r d331b8fc8ba8 -r 155700456194 src/lib-storage/mailbox-list-private.h
--- 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 {
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;
diff -r d331b8fc8ba8 -r 155700456194 src/lib-storage/mailbox-list.c
--- 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 @@ void mailbox_list_init(struct mailbox_li
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;
diff -r d331b8fc8ba8 -r 155700456194 src/lib-storage/mailbox-list.h
--- 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
@@ -6,6 +6,11 @@ struct mail_namespace;
struct mail_namespace;
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 */
More information about the dovecot-cvs
mailing list