From b5c2469d4921f70e0a47ae7261c70cd263b39b72 Mon Sep 17 00:00:00 2001
From: till <till@php.net>
Date: Sat, 22 Mar 2008 09:15:00 -0400
Subject: [PATCH] * committed a suggestion from #1483956 * cleaned up two functions

---
 program/lib/imap.inc |   42 +++++++++++++++++++++++-------------------
 1 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 3d20d9e..96353dd 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -161,18 +161,19 @@
 }
 
 function iil_ReadLine($fp, $size) {
-	$line = '';
-	if ($fp) {
-		do {
-		    // FIXME: hardcode size?
-			$buffer = fgets($fp, 2048);
-			if ($buffer === false) {
-				break;
-            }
-			$line .= $buffer;
-		} while ($buffer[strlen($buffer)-1]!="\n");
-	}
-	return $line;
+    $line = '';
+    if (!$fp) {
+        return $line;
+    }
+    do {
+	// FIXME: hardcode size?
+        $buffer = fgets($fp, 2048);
+        if ($buffer === false) {
+            break;
+        }
+        $line .= $buffer;
+    } while ($buffer[strlen($buffer)-1] != "\n");
+    return $line;
 }
 
 function iil_MultLine($fp, $line) {
@@ -192,13 +193,16 @@
 }
 
 function iil_ReadBytes($fp, $bytes) {
-	$data = '';
-	$len  = 0;
-	do {
-		$data.=fread($fp, $bytes-$len);
-		$len = strlen($data);
-	} while ($len<$bytes);
-	return $data;
+    $data = '';
+    $len  = 0;
+    do {
+        $data .= fread($fp, $bytes-$len);
+        if ($len == strlen($data)) {
+            break; //nothing was read -> exit to avoid apache lockups
+        }
+        $len = strlen($data);
+    } while ($len < $bytes);
+    return $data;
 }
 
 function iil_ReadReply($fp) {

--
Gitblit v1.9.1