1--TEST--
2Streams Based IPv6 UDP Loopback test
3--SKIPIF--
4<?php # vim:ft=php:
5	/* If IPv6 is supported on the platform this will error out with code 111 -
6	 * Connection refused.  If IPv6 is NOT supported, $errno will be set to
7	 * something else (indicating parse/getaddrinfo error)
8	 * Note: Might be a good idea to export an IPv6 support indicator
9	 * (such as AF_INET6 exported by ext/sockets), however, since we
10	 * cannot tell for sure if IPv6 works until we probe it at run time,
11	 * this isn't really practical.
12   	 */
13
14	@stream_socket_client('tcp://[::1]:0', $errno);
15	if ($errno != 111) die('skip IPv6 not supported.');
16?>
17--FILE--
18<?php
19	/* Setup socket server */
20	$server = stream_socket_server('udp://[::1]:31337', $errno, $errstr, STREAM_SERVER_BIND);
21	if (!$server) {
22		die('Unable to create AF_INET6 socket [server]');
23	}
24
25	/* Connect to it */
26	$client = stream_socket_client('udp://[::1]:31337');
27	if (!$client) {
28		die('Unable to create AF_INET6 socket [client]');
29	}
30
31	fwrite($client, "ABCdef123\n");
32
33	$data = fread($server, 10);
34	var_dump($data);
35
36	fclose($client);
37	fclose($server);
38?>
39--EXPECT--
40string(10) "ABCdef123
41"
42