com php-src: Consume data by server in test for bug #72333: ext/openssl/tests/bug72333.phpt

[email protected] (Jakub Zelenka)
Newsgroups php.cvs
Message-ID <[email protected]>
Commit:    53e2c9158d4c758e1d0abbc4c1547aee48b31552
Author:    Jakub Zelenka <[email protected]>         Fri, 17 Mar 2017 18:11:50 +0000
Parents:   183cd048f18fa4b04fb30448a84a54cee80a2491
Branches:  PHP-7.0

Link:       http://git.php.net/?p=php-src.git;a=commitdiff;h=53e2c9158d4c758e1d0abbc4c1547aee48b31552

Log:
Consume data by server in test for bug #72333

Client should be able to write more data and prevent time out

Bugs:
https://bugs.php.net/72333

Changed paths:
  M  ext/openssl/tests/bug72333.phpt


Diff:
diff --git a/ext/openssl/tests/bug72333.phpt b/ext/openssl/tests/bug72333.phpt
index 850f18b..fac5985 100644
--- a/ext/openssl/tests/bug72333.phpt
+++ b/ext/openssl/tests/bug72333.phpt
@@ -14,7 +14,21 @@ $serverCode = <<<'CODE'
 	$fp = stream_socket_server("ssl://127.0.0.1:10011", $errornum, $errorstr, $flags, $context);
 	phpt_notify();
 	$conn = stream_socket_accept($fp);
-	fread($conn, 100000);
+	$total = 100000;
+	$result = fread($conn, $total);
+	stream_set_blocking($conn, false);
+	usleep(50000);
+	$read = [$conn];
+	while (stream_select($read, $write, $except, 180)) {
+		$result = fread($conn, 100000);
+		if (!$result) {
+		    break;
+		}
+		$total += strlen($result);
+		if ($total >= 4000000) {
+		    break;
+		}
+	}
 	phpt_wait();
 CODE;
 
@@ -23,13 +37,16 @@ $clientCode = <<<'CODE'
 
 	phpt_wait();
 	$fp = stream_socket_client("ssl://127.0.0.1:10011", $errornum, $errorstr, 3000, STREAM_CLIENT_CONNECT, $context);
-	stream_set_blocking($fp, 0);
+	stream_set_blocking($fp, false);
 
 	function blocking_fwrite($fp, $buf) {
 		$write = [$fp];
 		$total = 0;
 		while (stream_select($read, $write, $except, 180)) {
 			$result = fwrite($fp, $buf);
+			if (!$result) {
+			    break;
+			}
 			$total += $result;
 			if ($total >= strlen($buf)) {
 				return $total;
@@ -37,7 +54,7 @@ $clientCode = <<<'CODE'
 			$buf = substr($buf, $total);
 		}
 	}
-	$str1 = str_repeat("a", 3000000);
+	$str1 = str_repeat("a", 4000000);
 	blocking_fwrite($fp, $str1);
 	phpt_notify();
 	echo "done";
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.