Mercurial > dovecot > core-2.2
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