diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-02-05 17:43:54 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-02-05 17:43:54 +0000 |
| commit | 96ecf8d61668aa551f7b8aa33b78f2abad2134ef (patch) | |
| tree | 84ab2f03fda13625d5eaa7952bc59fcebabe478b | |
| parent | 5fb4dc99f4062b8296272ab10c2c7ed9a26f3e47 (diff) | |
- Support NGINX as IMAP backend: better BAD response handling (#1485720)
git-svn-id: https://svn.roundcube.net/trunk@2273 208e9e7b-5314-0410-a742-e7e81cd9613c
| -rw-r--r-- | roundcubemail/CHANGELOG | 4 | ||||
| -rw-r--r-- | roundcubemail/program/lib/imap.inc | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/roundcubemail/CHANGELOG b/roundcubemail/CHANGELOG index c323ae45a..9418d4821 100644 --- a/roundcubemail/CHANGELOG +++ b/roundcubemail/CHANGELOG @@ -1,6 +1,10 @@ CHANGELOG RoundCube Webmail --------------------------- +2009/02/05 (alec) +---------- +- Support NGINX as IMAP backend: better BAD response handling (#1485720) + 2009/02/04 (alec) ---------- - performance fix: don't fetch attachment parts headers twice to parse filename diff --git a/roundcubemail/program/lib/imap.inc b/roundcubemail/program/lib/imap.inc index 7fd4aee26..302cfc007 100644 --- a/roundcubemail/program/lib/imap.inc +++ b/roundcubemail/program/lib/imap.inc @@ -68,7 +68,7 @@ - iil_C_HandlePartBody(): added 6th argument and fixed endless loop - added iil_PutLineC() - fixed iil_C_Sort() to support very long and/or divided responses - - added BYE response simple support for endless loop prevention + - added BYE/BAD response simple support for endless loop prevention - added 3rd argument in iil_StartsWith* functions - fix iil_C_FetchPartHeader() in some cases by use of iil_C_HandlePartBody() - allow iil_C_HandlePartBody() to fetch whole message @@ -307,8 +307,8 @@ function iil_ParseResult($string) { return -4; } -// check if $string starts with $match -function iil_StartsWith($string, $match, $bye=false) { +// check if $string starts with $match (or * BYE/BAD) +function iil_StartsWith($string, $match, $error=false) { $len = strlen($match); if ($len == 0) { return false; @@ -316,7 +316,7 @@ function iil_StartsWith($string, $match, $bye=false) { if (strncmp($string, $match, $len) == 0) { return true; } - if ($bye && strncmp($string, '* BYE ', 6) == 0) { + if ($error && preg_match('/^\* (BYE|BAD) /', $string)) { return true; } return false; |
