diff options
author | Jakub Zelenka <bukka@php.net> | 2017-03-17 18:11:50 +0000 |
---|---|---|
committer | Jakub Zelenka <bukka@php.net> | 2017-03-17 18:11:50 +0000 |
commit | 53e2c9158d4c758e1d0abbc4c1547aee48b31552 (patch) | |
tree | 3d20408c1c3f0e29e1a1d2f7921ca7a7b20a18bc | |
parent | 183cd048f18fa4b04fb30448a84a54cee80a2491 (diff) | |
download | php-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.phpt | 23 |
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"; |