|
| 1 | +--TEST-- |
| 2 | +socket_import_stream: effects of closing |
| 3 | +--SKIPIF-- |
| 4 | +<?php |
| 5 | +if (!extension_loaded('sockets')) { |
| 6 | + die('SKIP sockets extension not available.'); |
| 7 | +} |
| 8 | +if(substr(PHP_OS, 0, 3) != 'WIN' ) { |
| 9 | + die("skip Not Valid for Linux"); |
| 10 | +} |
| 11 | + |
| 12 | +--FILE-- |
| 13 | +<?php |
| 14 | + |
| 15 | +function test($stream, $sock) { |
| 16 | + if ($stream !== null) { |
| 17 | + echo "stream_set_blocking "; |
| 18 | + print_r(stream_set_blocking($stream, 0)); |
| 19 | + echo "\n"; |
| 20 | + } |
| 21 | + if ($sock !== null) { |
| 22 | + echo "socket_set_block "; |
| 23 | + print_r(socket_set_block($sock)); |
| 24 | + echo "\n"; |
| 25 | + echo "socket_get_option "; |
| 26 | + print_r(socket_get_option($sock, SOL_SOCKET, SO_TYPE)); |
| 27 | + echo "\n"; |
| 28 | + } |
| 29 | + echo "\n"; |
| 30 | +} |
| 31 | + |
| 32 | +echo "normal\n"; |
| 33 | +$stream0 = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND); |
| 34 | +$sock0 = socket_import_stream($stream0); |
| 35 | +test($stream0, $sock0); |
| 36 | + |
| 37 | +echo "\nunset stream\n"; |
| 38 | +$stream1 = stream_socket_server("udp://0.0.0.0:58381", $errno, $errstr, STREAM_SERVER_BIND); |
| 39 | +$sock1 = socket_import_stream($stream1); |
| 40 | +unset($stream1); |
| 41 | +test(null, $sock1); |
| 42 | + |
| 43 | +echo "\nunset socket\n"; |
| 44 | +$stream2 = stream_socket_server("udp://0.0.0.0:58382", $errno, $errstr, STREAM_SERVER_BIND); |
| 45 | +$sock2 = socket_import_stream($stream2); |
| 46 | +unset($sock2); |
| 47 | +test($stream2, null); |
| 48 | + |
| 49 | +echo "\nclose stream\n"; |
| 50 | +$stream3 = stream_socket_server("udp://0.0.0.0:58383", $errno, $errstr, STREAM_SERVER_BIND); |
| 51 | +$sock3 = socket_import_stream($stream3); |
| 52 | +fclose($stream3); |
| 53 | +test($stream3, $sock3); |
| 54 | + |
| 55 | +echo "\nclose socket\n"; |
| 56 | +$stream4 = stream_socket_server("udp://0.0.0.0:58384", $errno, $errstr, STREAM_SERVER_BIND); |
| 57 | +$sock4 = socket_import_stream($stream4); |
| 58 | +socket_close($sock4); |
| 59 | +test($stream4, $sock4); |
| 60 | + |
| 61 | +echo "Done.\n"; |
| 62 | +--EXPECTF-- |
| 63 | +normal |
| 64 | +stream_set_blocking 1 |
| 65 | +socket_set_block 1 |
| 66 | +socket_get_option 2 |
| 67 | + |
| 68 | + |
| 69 | +unset stream |
| 70 | +socket_set_block 1 |
| 71 | +socket_get_option 2 |
| 72 | + |
| 73 | + |
| 74 | +unset socket |
| 75 | +stream_set_blocking 1 |
| 76 | + |
| 77 | + |
| 78 | +close stream |
| 79 | +stream_set_blocking |
| 80 | +Warning: stream_set_blocking(): %d is not a valid stream resource in %s on line %d |
| 81 | + |
| 82 | +socket_set_block |
| 83 | +Warning: socket_set_block(): An operation was attempted on something that is not a socket. |
| 84 | + in %ssocket_import_stream-4-win.php on line %d |
| 85 | + |
| 86 | +Warning: socket_set_block(): unable to set blocking mode [0]: The operation completed successfully. |
| 87 | + in %ssocket_import_stream-4-win.php on line %d |
| 88 | + |
| 89 | +socket_get_option |
| 90 | +Warning: socket_get_option(): unable to retrieve socket option [0]: An operation was attempted on something that is not a socket. |
| 91 | + in %ssocket_import_stream-4-win.php on line %d |
| 92 | + |
| 93 | + |
| 94 | + |
| 95 | +close socket |
| 96 | +stream_set_blocking |
| 97 | +Warning: stream_set_blocking(): %d is not a valid stream resource in %s on line %d |
| 98 | + |
| 99 | +socket_set_block |
| 100 | +Warning: socket_set_block(): %d is not a valid Socket resource in %s on line %d |
| 101 | + |
| 102 | +socket_get_option |
| 103 | +Warning: socket_get_option(): %d is not a valid Socket resource in %s on line %d |
| 104 | + |
| 105 | + |
| 106 | +Done. |
0 commit comments