changeset 16960:52fccca876b9

imapc: Don't send FETCHes for data that is already in cache.
author Timo Sirainen <tss@iki.fi>
date Sat, 16 Nov 2013 20:06:34 +0200
parents 50026d936001
children 4597e6572ba1
files src/lib-storage/index/imapc/imapc-mail-fetch.c src/lib-storage/index/imapc/imapc-mail.c src/lib-storage/index/imapc/imapc-mail.h
diffstat 3 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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)
--- 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