]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Fix reset_id handling in mail_cache_get_missing_reason() cache
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 6 Jun 2017 14:18:27 +0000 (17:18 +0300)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Fri, 9 Jun 2017 07:39:58 +0000 (10:39 +0300)
Broken by bd897f82a5d9b00ba256b462d2056c2dc7df257c

src/lib-index/mail-cache-lookup.c
src/lib-index/mail-cache-private.h

index f1490212fecc056ffe96c05bc1d95211881b84b8..bf82f20d688e4eaa074379fa9f3f418ada248f37 100644 (file)
@@ -634,12 +634,14 @@ mail_cache_get_highest_seq_with_cache(struct mail_cache_view *view,
        for (; seq > highest_checked_seq; seq--) {
                if (mail_cache_lookup_cur_offset(view->view, seq, reset_id_r) != 0) {
                        rc->highest_seq_with_cache = seq;
+                       rc->reset_id = *reset_id_r;
                        return seq;
                }
        }
        if (seq == 0)
                return 0;
        /* then return the result from cache */
+       *reset_id_r = rc->reset_id;
        return rc->highest_seq_with_cache;
 }
 
index ff748cca31877f9f6ed2915f32265a9f0645f5e7..c911fdbf40f6deb0d9b5961a07fae38532668d97 100644 (file)
@@ -173,6 +173,7 @@ struct mail_cache_missing_reason_cache {
        uint32_t highest_checked_seq;
        uint32_t highest_seq_with_cache;
 
+       uint32_t reset_id;
        uint32_t log_file_head_seq;
        uoff_t log_file_head_offset;
 };