diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-04-11 19:28:52 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-04-11 19:29:49 +0200 |
commit | d9588ff2282ec93945a8b6865ddb30c66504ec3b (patch) | |
tree | b5a8660d80b4be38d3f51502be0c8013b603df14 /program/lib | |
parent | 7e3b5ef8f36be5cbd6057002948e3cc8cb9342b4 (diff) |
Fix messages index cache update under some conditions (e.g. proxy) (#1489756)
Diffstat (limited to 'program/lib')
-rw-r--r-- | program/lib/Roundcube/rcube_imap_cache.php | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/program/lib/Roundcube/rcube_imap_cache.php b/program/lib/Roundcube/rcube_imap_cache.php index 0c3edeaad..e49e77803 100644 --- a/program/lib/Roundcube/rcube_imap_cache.php +++ b/program/lib/Roundcube/rcube_imap_cache.php @@ -171,7 +171,7 @@ class rcube_imap_cache // Seek in internal cache if (array_key_exists('index', $this->icache[$mailbox])) { // The index was fetched from database already, but not validated yet - if (!array_key_exists('object', $this->icache[$mailbox]['index'])) { + if (empty($this->icache[$mailbox]['index']['validated'])) { $index = $this->icache[$mailbox]['index']; } // We've got a valid index @@ -248,6 +248,7 @@ class rcube_imap_cache } $this->icache[$mailbox]['index'] = array( + 'validated' => true, 'object' => $data, 'sort_field' => $sort_field, 'modseq' => !empty($index['modseq']) ? $index['modseq'] : $mbox_data['HIGHESTMODSEQ'] @@ -890,6 +891,8 @@ class rcube_imap_cache return false; } + $index['validated'] = true; + // Get mailbox data (UIDVALIDITY, counters, etc.) for status check $mbox_data = $this->imap->folder_data($mailbox); |