|
@@ -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) {
|