|
1 | 1 | --TEST--
|
2 | 2 | Testing linger `socket` option.
|
3 |
| ---SKIPIF-- |
4 |
| -<?php |
5 |
| -//if (getenv("SKIP_ONLINE_TESTS")) die('skip online test'); |
6 |
| -if (!in_array('https', stream_get_wrappers())) die('skip: https wrapper is required'); |
7 |
| -?> |
8 | 3 | --FILE--
|
9 | 4 | <?php
|
| 5 | +for ($i=0; $i<100; $i++) { |
| 6 | + $port = rand(10000, 65000); |
| 7 | + /* Setup socket server */ |
| 8 | + $server = @stream_socket_server("tcp://127.0.0.1:$port"); |
| 9 | + if ($server) { |
| 10 | + break; |
| 11 | + } |
| 12 | +} |
| 13 | +$client = stream_socket_client("tcp://127.0.0.1:$port"); |
10 | 14 | $context = stream_context_create(['socket' => ['linger' => false]]);
|
11 |
| -var_dump(file_get_contents('https://httpbin.org/get', false, $context) !== false); |
| 15 | +$socket = stream_socket_client("tcp://127.0.0.1:$port", $errno, $errstr, 0, STREAM_CLIENT_CONNECT, $context); |
| 16 | +var_dump($socket); |
12 | 17 | $context = stream_context_create(['socket' => ['linger' => PHP_INT_MAX + 1]]);
|
13 |
| -var_dump(file_get_contents('https://httpbin.org/get', false, $context) !== false); |
14 |
| -$context = stream_context_create(['socket' => ['linger' => 3]]); |
15 |
| -var_dump(file_get_contents('https://httpbin.org/get', false, $context) !== false); |
| 18 | +$socket = stream_socket_client("tcp://127.0.0.1:$port", $errno, $errstr, 0, STREAM_CLIENT_CONNECT, $context); |
| 19 | +var_dump($socket); |
| 20 | +$context = stream_context_create(['socket' => ['linger' => 5]]); |
| 21 | +$socket = stream_socket_client("tcp://127.0.0.1:$port", $errno, $errstr, 1, STREAM_CLIENT_CONNECT, $context); |
| 22 | +var_dump($socket); |
| 23 | +stream_set_blocking($socket, true); |
| 24 | +var_dump(stream_socket_sendto($socket, "data")); |
| 25 | +$data = base64_decode("1oIBAAABAAAAAAAAB2V4YW1wbGUDb3JnAAABAAE="); |
| 26 | +stream_set_blocking($socket, 0); |
| 27 | +stream_socket_sendto($socket, $data); |
| 28 | +stream_socket_shutdown($socket, STREAM_SHUT_RDWR); |
| 29 | +stream_socket_shutdown($server, STREAM_SHUT_RDWR); |
16 | 30 | ?>
|
17 | 31 | --EXPECTF--
|
18 |
| -Warning: file_get_contents(https://httpbin.org/get): Failed to open stream: Invalid `linger` value in %s on line %d |
| 32 | +Warning: stream_socket_client(): Unable to connect to tcp://127.0.0.1:%d (Invalid `linger` value) in %s on line %d |
19 | 33 | bool(false)
|
20 | 34 |
|
21 |
| -Warning: file_get_contents(https://httpbin.org/get): Failed to open stream: Invalid `linger` value in %s on line %d |
| 35 | +Warning: stream_socket_client(): Unable to connect to tcp://127.0.0.1:%d (Invalid `linger` value) in %s on line %d |
22 | 36 | bool(false)
|
23 |
| -bool(true) |
| 37 | +resource(%d) of type (stream) |
| 38 | +iunt(4) |
0 commit comments