From 0ea94769ee2846a0a4d0ec5d55d3bd8d6241b24a Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Fri, 08 Apr 2011 02:27:28 -0400 Subject: [PATCH] - Added workaround for some IMAP server with broken STATUS response (#1487859) --- CHANGELOG | 1 + program/include/rcube_imap_generic.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 0 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index e52b973..11b11fc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Added workaround for some IMAP server with broken STATUS response (#1487859) - Fix bug where default_charset was not used for text messages (#1487836) - Enable TinyMCE's contextmenu (#1487014) - TinyMCE 3.4.1 diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php index b4479d6..932ec63 100644 --- a/program/include/rcube_imap_generic.php +++ b/program/include/rcube_imap_generic.php @@ -953,6 +953,16 @@ list($mbox, $items) = $this->tokenizeResponse($response, 2); + // Fix for #1487859. Some buggy server returns not quoted + // folder name with spaces. Let's try to handle this situation + if (!is_array($items) && ($pos = strpos($response, '(')) !== false) { + $response = substr($response, $pos); + $items = $this->tokenizeResponse($response, 1); + if (!is_array($items)) { + return $result; + } + } + for ($i=0, $len=count($items); $i<$len; $i += 2) { $result[$items[$i]] = (int) $items[$i+1]; } -- Gitblit v1.9.1