summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-10-15 09:22:09 +0200
committerAleksander Machniak <alec@alec.pl>2013-10-15 09:22:09 +0200
commit64c924ea06afa1eec463078a5d05fc908c12d10d (patch)
tree2c4cdb118b410a541111f1aff4bc6c1f9a9508e2
parent902b9df7fb4856d3116b67358ed88347e835e237 (diff)
Fix regression where wrong set of message identifiers was used
in sql query that was supposed to fetch list of messages from cache
-rw-r--r--program/lib/Roundcube/rcube_imap_cache.php7
1 files changed, 5 insertions, 2 deletions
diff --git a/program/lib/Roundcube/rcube_imap_cache.php b/program/lib/Roundcube/rcube_imap_cache.php
index 445d46360..a8166545e 100644
--- a/program/lib/Roundcube/rcube_imap_cache.php
+++ b/program/lib/Roundcube/rcube_imap_cache.php
@@ -327,7 +327,6 @@ class rcube_imap_cache
return array();
}
- $msgs = array_flip($msgs);
$result = array();
if ($this->mode & self::MODE_MESSAGE) {
@@ -340,6 +339,8 @@ class rcube_imap_cache
." AND uid IN (".$this->db->array2list($msgs, 'integer').")",
$this->userid, $mailbox);
+ $msgs = array_flip($msgs);
+
while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
$uid = intval($sql_arr['uid']);
$result[$uid] = $this->build_message($sql_arr);
@@ -351,11 +352,13 @@ class rcube_imap_cache
unset($msgs[$uid]);
}
}
+
+ $msgs = array_flip($msgs);
}
// Fetch not found messages from IMAP server
if (!empty($msgs)) {
- $messages = $this->imap->fetch_headers($mailbox, array_keys($msgs), false, true);
+ $messages = $this->imap->fetch_headers($mailbox, $msgs, false, true);
// Insert to DB and add to result list
if (!empty($messages)) {