[dovecot-cvs] dovecot/src/lib-storage/index/mbox mbox-storage.c, 1.154, 1.155 mbox-sync.c, 1.192, 1.193 mbox-transaction.c, 1.15, 1.16

tss at dovecot.org tss at dovecot.org
Sat Nov 25 22:17:51 UTC 2006


Update of /var/lib/cvs/dovecot/src/lib-storage/index/mbox
In directory talvi:/tmp/cvs-serv28938/lib-storage/index/mbox

Modified Files:
	mbox-storage.c mbox-sync.c mbox-transaction.c 
Log Message:
Mailbox list indexing and related changes. Currently works only with
maildir and mmap_disable=no. This allows doing STATUS to synced mailboxes
without opening their index files at all.



Index: mbox-storage.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-storage.c,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -d -r1.154 -r1.155
--- mbox-storage.c	18 Nov 2006 11:19:59 -0000	1.154
+++ mbox-storage.c	25 Nov 2006 22:17:45 -0000	1.155
@@ -358,6 +358,8 @@
 
 	if (mbox_get_list_settings(&list_set, data, flags) < 0)
 		return NULL;
+	list_set.mail_storage_flags = &flags;
+	list_set.mail_storage_lock_method = &lock_method;
 
 	pool = pool_alloconly_create("storage", 512);
 	storage = p_new(pool, struct mbox_storage, 1);

Index: mbox-sync.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync.c,v
retrieving revision 1.192
retrieving revision 1.193
diff -u -d -r1.192 -r1.193
--- mbox-sync.c	12 Nov 2006 21:30:29 -0000	1.192
+++ mbox-sync.c	25 Nov 2006 22:17:45 -0000	1.193
@@ -1798,6 +1798,11 @@
 	enum mbox_sync_flags mbox_sync_flags = 0;
 	int ret = 0;
 
+	if (!box->opened) {
+		if (index_storage_mailbox_open(&mbox->ibox) < 0)
+			return index_mailbox_sync_init(box, 0, TRUE);
+	}
+
 	if ((flags & MAILBOX_SYNC_FLAG_FAST) == 0 ||
 	    mbox->ibox.sync_last_check + MAILBOX_FULL_SYNC_INTERVAL <=
 	    ioloop_time) {

Index: mbox-transaction.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-transaction.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- mbox-transaction.c	15 Oct 2006 12:59:46 -0000	1.15
+++ mbox-transaction.c	25 Nov 2006 22:17:45 -0000	1.16
@@ -79,7 +79,8 @@
 {
 	struct mailbox *box = MAIL_STORAGE_INDEX(t->view->index);
 
-	if (strcmp(box->storage->name, MBOX_STORAGE_NAME) == 0) {
+	/* index can be for mailbox list index, in which case box=NULL */
+	if (box != NULL && strcmp(box->storage->name, MBOX_STORAGE_NAME) == 0) {
 		struct mbox_mailbox *mbox = (struct mbox_mailbox *)box;
 		struct mbox_transaction_context *mt;
 



More information about the dovecot-cvs mailing list