]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Fixed mail_cache_register_fields() decision updates.
authorTimo Sirainen <tss@iki.fi>
Wed, 15 May 2013 10:34:59 +0000 (13:34 +0300)
committerTimo Sirainen <tss@iki.fi>
Wed, 15 May 2013 10:34:59 +0000 (13:34 +0300)
Normally this shouldn't matter, except when mail_*cache_fields settings have
been used.

src/lib-index/mail-cache-fields.c

index 347486e144f7c215f48aa526b250480d55c432ab..3cbfc4a997cdd2a7ae4fc288d312ecda2fc6e477 100644 (file)
@@ -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;
        }