summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Zelenka <bukka@php.net>2017-03-17 18:11:50 +0000
committerJakub Zelenka <bukka@php.net>2017-03-17 18:11:50 +0000
commit53e2c9158d4c758e1d0abbc4c1547aee48b31552 (patch)
tree3d20408c1c3f0e29e1a1d2f7921ca7a7b20a18bc
parent183cd048f18fa4b04fb30448a84a54cee80a2491 (diff)
downloadphp-git-53e2c9158d4c758e1d0abbc4c1547aee48b31552.tar.gz
Consume data by server in test for bug #72333
Client should be able to write more data and prevent time out
-rw-r--r--ext/openssl/tests/bug72333.phpt23
1 files changed, 20 insertions, 3 deletions
diff --git a/ext/openssl/tests/bug72333.phpt b/ext/openssl/tests/bug72333.phpt
index 850f18bf6a..fac59853f9 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";