dovecot-2.2: imapc: Don't send FETCHes for data that is already ...

dovecot at dovecot.org dovecot at dovecot.org
Sat Nov 16 20:10:36 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/52fccca876b9
changeset: 16960:52fccca876b9
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Nov 16 20:06:34 2013 +0200
description:
imapc: Don't send FETCHes for data that is already in cache.

diffstat:

 src/lib-storage/index/imapc/imapc-mail-fetch.c |  3 +++
 src/lib-storage/index/imapc/imapc-mail.c       |  4 ++--
 src/lib-storage/index/imapc/imapc-mail.h       |  1 +
 3 files changed, 6 insertions(+), 2 deletions(-)

diffs (44 lines):

diff -r 50026d936001 -r 52fccca876b9 src/lib-storage/index/imapc/imapc-mail-fetch.c
--- a/src/lib-storage/index/imapc/imapc-mail-fetch.c	Sat Nov 16 19:41:07 2013 +0200
+++ b/src/lib-storage/index/imapc/imapc-mail-fetch.c	Sat Nov 16 20:06:34 2013 +0200
@@ -217,6 +217,9 @@
 	if (mbox->prev_mail_cache.uid == _mail->uid)
 		imapc_mail_cache_get(mail, &mbox->prev_mail_cache);
 
+	/* try to get as much from cache as possible */
+	imapc_mail_update_access_parts(&mail->imail);
+
 	if ((data->wanted_fields & MAIL_FETCH_RECEIVED_DATE) != 0 &&
 	    data->received_date == (time_t)-1)
 		fields |= MAIL_FETCH_RECEIVED_DATE;
diff -r 50026d936001 -r 52fccca876b9 src/lib-storage/index/imapc/imapc-mail.c
--- a/src/lib-storage/index/imapc/imapc-mail.c	Sat Nov 16 19:41:07 2013 +0200
+++ b/src/lib-storage/index/imapc/imapc-mail.c	Sat Nov 16 20:06:34 2013 +0200
@@ -285,7 +285,7 @@
 	return TRUE;
 }
 
-static void index_mail_update_access_parts(struct index_mail *mail)
+void imapc_mail_update_access_parts(struct index_mail *mail)
 {
 	struct mail *_mail = &mail->mail.mail;
 	struct imapc_mailbox *mbox = (struct imapc_mailbox *)_mail->box;
@@ -340,7 +340,7 @@
 	struct index_mail *mail = (struct index_mail *)_mail;
 
 	index_mail_add_temp_wanted_fields(_mail, fields, headers);
-	index_mail_update_access_parts(mail);
+	imapc_mail_update_access_parts(mail);
 }
 
 static void imapc_mail_close(struct mail *_mail)
diff -r 50026d936001 -r 52fccca876b9 src/lib-storage/index/imapc/imapc-mail.h
--- a/src/lib-storage/index/imapc/imapc-mail.h	Sat Nov 16 19:41:07 2013 +0200
+++ b/src/lib-storage/index/imapc/imapc-mail.h	Sat Nov 16 20:06:34 2013 +0200
@@ -33,5 +33,6 @@
 void imapc_mail_fetch_update(struct imapc_mail *mail,
 			     const struct imapc_untagged_reply *reply,
 			     const struct imap_arg *args);
+void imapc_mail_update_access_parts(struct index_mail *mail);
 
 #endif


More information about the dovecot-cvs mailing list