dovecot-1.1: dbox: If MAILBOXDIR is specified, use the new subsc...

dovecot at dovecot.org dovecot at dovecot.org
Thu Mar 12 23:43:39 EET 2009


details:   http://hg.dovecot.org/dovecot-1.1/rev/4eb0c253bf35
changeset: 8191:4eb0c253bf35
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Mar 12 17:43:33 2009 -0400
description:
dbox: If MAILBOXDIR is specified, use the new subscriptions and uidvalidity filenames.

diffstat:

3 files changed, 19 insertions(+), 6 deletions(-)
src/lib-storage/index/dbox/dbox-index.c   |    5 ++++-
src/lib-storage/index/dbox/dbox-storage.c |   13 ++++++++++---
src/lib-storage/index/dbox/dbox-storage.h |    7 +++++--

diffs (73 lines):

diff -r c560fbd69ee4 -r 4eb0c253bf35 src/lib-storage/index/dbox/dbox-index.c
--- a/src/lib-storage/index/dbox/dbox-index.c	Thu Mar 12 17:39:58 2009 -0400
+++ b/src/lib-storage/index/dbox/dbox-index.c	Thu Mar 12 17:43:33 2009 -0400
@@ -160,11 +160,14 @@ dbox_index_set_corrupted(struct dbox_ind
 
 static uint32_t dbox_get_uidvalidity_next(struct mail_storage *storage)
 {
+	const char *fname;
 	const char *path;
 
+	fname = *storage->list->set.mailbox_dir_name == '\0' ?
+		DBOX_OLD_UIDVALIDITY_FILE_NAME : DBOX_UIDVALIDITY_FILE_NAME;
 	path = mailbox_list_get_path(storage->list, NULL,
 				     MAILBOX_LIST_PATH_TYPE_CONTROL);
-	path = t_strconcat(path, "/"DBOX_UIDVALIDITY_FILE_NAME, NULL);
+	path = t_strconcat(path, "/", fname, NULL);
 	return mailbox_uidvalidity_next(path);
 }
 
diff -r c560fbd69ee4 -r 4eb0c253bf35 src/lib-storage/index/dbox/dbox-storage.c
--- a/src/lib-storage/index/dbox/dbox-storage.c	Thu Mar 12 17:39:58 2009 -0400
+++ b/src/lib-storage/index/dbox/dbox-storage.c	Thu Mar 12 17:43:33 2009 -0400
@@ -50,12 +50,13 @@ dbox_get_list_settings(struct mailbox_li
 		       const char **layout_r, const char **alt_dir_r,
 		       const char **error_r)
 {
+	const char *subs_fname = DBOX_SUBSCRIPTION_FILE_NAME;
 	bool debug = (flags & MAIL_STORAGE_FLAG_DEBUG) != 0;
 
 	*layout_r = "fs";
 
 	memset(list_set, 0, sizeof(*list_set));
-	list_set->subscription_fname = DBOX_SUBSCRIPTION_FILE_NAME;
+	list_set->subscription_fname = subs_fname;
 	list_set->maildir_name = DBOX_MAILDIR_NAME;
 
 	if (data == NULL || *data == '\0' || *data == ':') {
@@ -68,8 +69,14 @@ dbox_get_list_settings(struct mailbox_li
 
 	if (debug)
 		i_info("dbox: data=%s", data);
-	return mailbox_list_settings_parse(data, list_set, layout_r, alt_dir_r,
-					   error_r);
+	if (mailbox_list_settings_parse(data, list_set, layout_r, alt_dir_r,
+					error_r) < 0)
+		return -1;
+
+	if (*list_set->mailbox_dir_name == '\0' &&
+	    list_set->subscription_fname == subs_fname)
+		list_set->subscription_fname = DBOX_OLD_SUBSCRIPTION_FILE_NAME;
+	return 0;
 }
 
 static struct mail_storage *dbox_alloc(void)
diff -r c560fbd69ee4 -r 4eb0c253bf35 src/lib-storage/index/dbox/dbox-storage.h
--- a/src/lib-storage/index/dbox/dbox-storage.h	Thu Mar 12 17:39:58 2009 -0400
+++ b/src/lib-storage/index/dbox/dbox-storage.h	Thu Mar 12 17:43:33 2009 -0400
@@ -5,10 +5,13 @@
 #include "mailbox-list-private.h"
 
 #define DBOX_STORAGE_NAME "dbox"
-#define DBOX_SUBSCRIPTION_FILE_NAME ".dbox-subscriptions"
-#define DBOX_UIDVALIDITY_FILE_NAME ".dbox-uidvalidity"
+#define DBOX_OLD_SUBSCRIPTION_FILE_NAME ".dbox-subscriptions"
+#define DBOX_OLD_UIDVALIDITY_FILE_NAME ".dbox-uidvalidity"
+#define DBOX_SUBSCRIPTION_FILE_NAME "subscriptions"
+#define DBOX_UIDVALIDITY_FILE_NAME "dovecot-uidvalidity"
 #define DBOX_INDEX_PREFIX "dovecot.index"
 
+#define DBOX_MAILBOX_DIR_NAME "mailboxes"
 #define DBOX_MAILDIR_NAME "dbox-Mails"
 #define DBOX_INDEX_NAME "dbox.index"
 #define DBOX_MAIL_FILE_MULTI_PREFIX "m."


More information about the dovecot-cvs mailing list