dovecot-2.2: lib-storage: mail_never_cache_fields=* means now to...

dovecot at dovecot.org dovecot at dovecot.org
Wed Apr 30 15:47:24 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/c1719de47d5e
changeset: 17298:c1719de47d5e
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Apr 30 18:46:55 2014 +0300
description:
lib-storage: mail_never_cache_fields=* means now to disable all caching.

diffstat:

 src/lib-storage/index/index-mail.c     |  3 ++-
 src/lib-storage/index/index-storage.c  |  7 +++++++
 src/lib-storage/mail-storage-private.h |  2 ++
 3 files changed, 11 insertions(+), 1 deletions(-)

diffs (42 lines):

diff -r 5c4205a95028 -r c1719de47d5e src/lib-storage/index/index-mail.c
--- 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);
 	}
diff -r 5c4205a95028 -r c1719de47d5e src/lib-storage/index/index-storage.c
--- 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);
diff -r 5c4205a95028 -r c1719de47d5e src/lib-storage/mail-storage-private.h
--- 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 {


More information about the dovecot-cvs mailing list