[dovecot-cvs] dovecot/src/lib-storage/index index-mail.c, 1.33, 1.34 index-storage.c, 1.51, 1.52 index-transaction.c, 1.2, 1.3

cras at procontrol.fi cras at procontrol.fi
Sun Jun 20 11:05:44 EEST 2004


Update of /home/cvs/dovecot/src/lib-storage/index
In directory talvi:/tmp/cvs-serv6435/lib-storage/index

Modified Files:
	index-mail.c index-storage.c index-transaction.c 
Log Message:
Beginnings of getting cache file working again. Easy to break currently, but
basics seem to work.



Index: index-mail.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-mail.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- index-mail.c	20 Jun 2004 03:25:33 -0000	1.33
+++ index-mail.c	20 Jun 2004 08:05:41 -0000	1.34
@@ -157,8 +157,8 @@
         if (!index_mail_cache_can_add(mail, field))
 		return;
 
-	if (!mail_cache_add(mail->trans->cache_trans, mail->data.seq,
-			    field, data, size))
+	if (mail_cache_add(mail->trans->cache_trans, mail->data.seq,
+			   field, data, size) < 0)
 		mail_cache_transaction_rollback(mail->trans->cache_trans);
 
 	mail->data.cached_fields |= field;

Index: index-storage.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-storage.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- index-storage.c	14 Jun 2004 04:29:01 -0000	1.51
+++ index-storage.c	20 Jun 2004 08:05:41 -0000	1.52
@@ -350,6 +350,8 @@
 		}
 
 		ibox->view = mail_index_view_open(index);
+		ibox->cache_view =
+			mail_cache_view_open(ibox->cache, ibox->view);
 		return ibox;
 	} while (0);
 
@@ -362,6 +364,8 @@
 {
 	struct index_mailbox *ibox = (struct index_mailbox *) box;
 
+	if (ibox->cache_view != NULL)
+		mail_cache_view_close(ibox->cache_view);
 	if (ibox->view != NULL)
 		mail_index_view_close(ibox->view);
 

Index: index-transaction.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-transaction.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- index-transaction.c	10 May 2004 21:09:15 -0000	1.2
+++ index-transaction.c	20 Jun 2004 08:05:41 -0000	1.3
@@ -20,8 +20,11 @@
 	uoff_t offset;
 	int ret;
 
-	if (t->cache_trans != NULL) 
+	if (t->cache_trans != NULL)  {
 		(void)mail_cache_transaction_commit(t->cache_trans);
+		(void)mail_cache_transaction_end(t->cache_trans);
+		t->cache_trans = NULL;
+	}
 
 	ret = mail_index_transaction_commit(t->trans, &seq, &offset);
 	if (ret < 0)



More information about the dovecot-cvs mailing list