]> 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)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 6 Jun 2017 14:19:04 +0000 (17:19 +0300)
Broken by bd897f82a5d9b00ba256b462d2056c2dc7df257c

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

index 90cfba8d49bbeabd1a3c9a4225e9f10c85a627de..d9c43f83712f076541d5857076207715653b3e0b 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 6b7950755945da7e15051316280bc2c54683cafb..8e1f4fc5d01a44279141ba03ee4b2752037231a8 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;
 };