diff --git a/functions/imap_general.php b/functions/imap_general.php index 67efe425d..19ff2788b 100755 --- a/functions/imap_general.php +++ b/functions/imap_general.php @@ -187,7 +187,8 @@ function sqimap_fread($imap_stream,$iSize,$filter=false, if (!$filter || !$outputstream) { $iBufferSize = $iSize; } else { - $iBufferSize = 62400; // multiple of 78 in case of base64 decoding. + // see php bug 24033. They changed fread behaviour %$^&$% + $iBufferSize = 780; // multiple of 78 in case of base64 decoding. } $iRet = $iSize - $iBufferSize; $iRetrieved = 0; @@ -201,17 +202,6 @@ function sqimap_fread($imap_stream,$iSize,$filter=false, break; } $iRetrieved += $iBufferSize; - // if the returned lines are split, do not end with \n - // then we have a problem and need to adjust (happened with uw) - if ($bBufferSizeAdapted && substr($sRead,-1) !== "\n") { - // use fgets because it stops at \n. - // we can do it because it's for correction - $sRead .= fgets($imap_stream,$iBufferSize); - $iRetrieved += strlen($sRead); - if ($iRetrieved == $iSize) { - $bFinished = true; - } - } if ($filter) { // in case line-endings do not appear at position 78 we adapt the buffersize so we can base64 decode on the fly if (!$bBufferSizeAdapted) {