summaryrefslogtreecommitdiff
path: root/program/lib
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2007-07-03 17:37:20 +0000
committerthomascube <thomas@roundcube.net>2007-07-03 17:37:20 +0000
commit9e0bb6bcdedd113b7a1496defb5daef98be3dde0 (patch)
tree6c3ec3ecadf945dc2c91d80d3ea1b0d3cc2ceb4a /program/lib
parent3fc00e67bbfa5bad7b0d29d268545036f6dc684d (diff)
Applied socket error patch by Thomas Mangin
Diffstat (limited to 'program/lib')
-rw-r--r--program/lib/imap.inc11
1 files changed, 8 insertions, 3 deletions
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 6bc47a198..05b1c00e1 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -48,6 +48,7 @@
- Also acceppt LIST responses in iil_C_ListSubscribed()
- Sanity check of $message_set in iil_C_FetchHeaders(), iil_C_FetchHeaderIndex(), iil_C_FetchThreadHeaders()
- Implemented UID FETCH in iil_C_FetchHeaders()
+ - Abort do-loop on socket errors (fgets returns false)
- Removed some debuggers (echo ...)
********************************************************/
@@ -130,6 +131,8 @@ function iil_ReadLine($fp, $size){
if ($fp){
do{
$buffer = fgets($fp, 2048);
+ if ($buffer === false)
+ break;
$line.=$buffer;
}while($buffer[strlen($buffer)-1]!="\n");
}
@@ -229,9 +232,11 @@ function iil_C_Login(&$conn, $user, $password){
$password = strtr($password, array('"'=>'\\"', '\\' => '\\\\'));
fputs($conn->fp, "a001 LOGIN $user \"$password\"\r\n");
- do{
- $line = iil_ReadReply($conn->fp);
- }while(!iil_StartsWith($line, "a001 "));
+ do{
+ $line = iil_ReadReply($conn->fp);
+ if ($line === false)
+ break;
+ }while(!iil_StartsWith($line, "a001 "));
$a=explode(" ", $line);
if (strcmp($a[1],"OK")==0){
$result=$conn->fp;