Mercurial > dovecot > core-2.2
changeset 17298:c1719de47d5e
lib-storage: mail_never_cache_fields=* means now to disable all caching.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 30 Apr 2014 18:46:55 +0300 |
parents | 5c4205a95028 |
children | 501a19fc2747 |
files | src/lib-storage/index/index-mail.c src/lib-storage/index/index-storage.c src/lib-storage/mail-storage-private.h |
diffstat | 3 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-mail.c Wed Apr 30 17:37:43 2014 +0300 +++ b/src/lib-storage/index/index-mail.c Wed Apr 30 18:46:55 2014 +0300 @@ -512,7 +512,8 @@ } if (!mail->data.no_caching && - mail->data.dont_cache_field_idx != field_idx) { + mail->data.dont_cache_field_idx != field_idx && + !_mail->box->mail_cache_disabled) { mail_cache_add(_mail->transaction->cache_trans, _mail->seq, field_idx, data, data_size); }
--- a/src/lib-storage/index/index-storage.c Wed Apr 30 17:37:43 2014 +0300 +++ b/src/lib-storage/index/index-storage.c Wed Apr 30 18:46:55 2014 +0300 @@ -71,6 +71,13 @@ sizeof(global_cache_fields)); mail_cache_register_fields(cache, ibox->cache_fields, MAIL_INDEX_CACHE_FIELD_COUNT); + + if (strcmp(set->mail_never_cache_fields, "*") == 0) { + /* all caching disabled for now */ + box->mail_cache_disabled = TRUE; + return; + } + set_cache_decisions(cache, "mail_cache_fields", set->mail_cache_fields, MAIL_CACHE_DECISION_TEMP);
--- a/src/lib-storage/mail-storage-private.h Wed Apr 30 17:37:43 2014 +0300 +++ b/src/lib-storage/mail-storage-private.h Wed Apr 30 18:46:55 2014 +0300 @@ -343,6 +343,8 @@ unsigned int disallow_new_keywords:1; /* Mailbox has been synced at least once */ unsigned int synced:1; + /* Updating cache file is disabled */ + unsigned int mail_cache_disabled:1; }; struct mail_vfuncs {