From: Timo Sirainen Date: Wed, 15 May 2013 10:34:59 +0000 (+0300) Subject: lib-index: Fixed mail_cache_register_fields() decision updates. X-Git-Tag: 2.2.2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a16d9a651aaa36a308f1aaae87e73e143fdff887;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Fixed mail_cache_register_fields() decision updates. Normally this shouldn't matter, except when mail_*cache_fields settings have been used. --- diff --git a/src/lib-index/mail-cache-fields.c b/src/lib-index/mail-cache-fields.c index 347486e144..3cbfc4a997 100644 --- a/src/lib-index/mail-cache-fields.c +++ b/src/lib-index/mail-cache-fields.c @@ -74,8 +74,8 @@ mail_cache_field_update(struct mail_cache *cache, i_assert(newfield->type < MAIL_CACHE_FIELD_COUNT); orig = &cache->fields[newfield->idx]; - if (newfield->decision != MAIL_CACHE_DECISION_NO && - orig->field.decision != newfield->decision) { + if ((newfield->decision & MAIL_CACHE_DECISION_FORCED) != 0 || + newfield->decision > orig->field.decision) { orig->field.decision = newfield->decision; orig->decision_dirty = TRUE; }