From 040e8d386478873174d15667b7d390bb5b113af3 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 24 Jan 2018 18:01:48 +0200 Subject: [PATCH] lib-index: Write forced cache decision changes immediately to cache file When mail_always/never_cache_fields doesn't match the current caching decisions in the cache file, write the updated decisions to the file. --- src/lib-index/mail-cache-fields.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib-index/mail-cache-fields.c b/src/lib-index/mail-cache-fields.c index ca16bb0544..557c232dd3 100644 --- a/src/lib-index/mail-cache-fields.c +++ b/src/lib-index/mail-cache-fields.c @@ -405,7 +405,10 @@ int mail_cache_header_fields_read(struct mail_cache *cache) enum mail_cache_decision_type cur_dec = cache->fields[fidx].field.decision; if ((cur_dec & MAIL_CACHE_DECISION_FORCED) != 0) { - /* Forced decision. */ + /* Forced decision. If the decision has + changed, update the fields in the file. */ + if ((cur_dec & ~MAIL_CACHE_DECISION_FORCED) != file_dec) + cache->field_header_write_pending = TRUE; } else if (cache->fields[fidx].decision_dirty) { /* Decisions have recently been updated internally. Don't change them. */