From: Timo Sirainen Date: Sat, 16 Nov 2013 18:09:19 +0000 (+0200) Subject: imapc: Avoid FETCH INTERNALDATE for getting save_date when we already know received_date. X-Git-Tag: 2.2.8~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf611d43256ef8ee3e1c1ce8e1257920f2075278;p=thirdparty%2Fdovecot%2Fcore.git imapc: Avoid FETCH INTERNALDATE for getting save_date when we already know received_date. --- diff --git a/src/lib-storage/index/imapc/imapc-mail-fetch.c b/src/lib-storage/index/imapc/imapc-mail-fetch.c index 13fd24b43b..967d1bff9f 100644 --- a/src/lib-storage/index/imapc/imapc-mail-fetch.c +++ b/src/lib-storage/index/imapc/imapc-mail-fetch.c @@ -223,6 +223,9 @@ bool imapc_mail_prefetch(struct mail *_mail) if ((data->wanted_fields & MAIL_FETCH_RECEIVED_DATE) != 0 && data->received_date == (time_t)-1) fields |= MAIL_FETCH_RECEIVED_DATE; + if ((data->wanted_fields & MAIL_FETCH_SAVE_DATE) != 0 && + data->save_date == (time_t)-1 && data->received_date == (time_t)-1) + fields |= MAIL_FETCH_RECEIVED_DATE; if ((data->wanted_fields & MAIL_FETCH_PHYSICAL_SIZE) != 0 && data->physical_size == (uoff_t)-1 && IMAPC_BOX_HAS_FEATURE(mbox, IMAPC_FEATURE_RFC822_SIZE)) diff --git a/src/lib-storage/index/imapc/imapc-mail.c b/src/lib-storage/index/imapc/imapc-mail.c index 643c22ef79..d29773932f 100644 --- a/src/lib-storage/index/imapc/imapc-mail.c +++ b/src/lib-storage/index/imapc/imapc-mail.c @@ -296,6 +296,12 @@ void imapc_mail_update_access_parts(struct index_mail *mail) if ((data->wanted_fields & MAIL_FETCH_RECEIVED_DATE) != 0) (void)index_mail_get_received_date(_mail, &date); + if ((data->wanted_fields & MAIL_FETCH_SAVE_DATE) != 0) { + if (index_mail_get_save_date(_mail, &date) < 0) { + (void)index_mail_get_received_date(_mail, &date); + data->save_date = data->received_date; + } + } if ((data->wanted_fields & MAIL_FETCH_PHYSICAL_SIZE) != 0) { if (index_mail_get_physical_size(_mail, &size) < 0 && !IMAPC_BOX_HAS_FEATURE(mbox, IMAPC_FEATURE_RFC822_SIZE))