From: Jakub Zelenka Date: Fri, 17 Mar 2017 18:11:50 +0000 (+0000) Subject: Consume data by server in test for bug #72333 X-Git-Tag: php-7.0.18RC1~19 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=53e2c9158d4c758e1d0abbc4c1547aee48b31552;p=php Consume data by server in test for bug #72333 Client should be able to write more data and prevent time out --- 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";