1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- --TEST--
- recvmsg(): basic test
- --SKIPIF--
- <?php
- if (!extension_loaded('sockets')) {
- die('skip sockets extension not available.');
- }
- require 'ipv6_skipif.inc';
- if (!defined('IPPROTO_IPV6')) {
- die('skip IPv6 not available.');
- }
- if (!defined('IPV6_RECVPKTINFO')) {
- die('skip IPV6_RECVPKTINFO not available.');
- }
- ?>
- --FILE--
- <?php
- include __DIR__."/mcast_helpers.php.inc";
- $addr = '::1';
- echo "creating send socket\n";
- $sends1 = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP) or die("err");
- var_dump($sends1);
- $br = socket_bind($sends1, '::', 7001) or die("err");
- var_dump($br);
- socket_set_nonblock($sends1) or die("Could not put in non-blocking mode");
- echo "creating receive socket\n";
- $s = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP) or die("err");
- var_dump($s);
- $br = socket_bind($s, '::0', 3000) or die("err");
- var_dump($br);
- socket_set_option($s, IPPROTO_IPV6, IPV6_RECVPKTINFO, 1) or die("err");
- $r = socket_sendto($sends1, $m = "testing packet", strlen($m), 0, $addr, 3000);
- var_dump($r);
- if ($r < 12) die;
- checktimeout($s, 500);
- $data = [
- "name" => ["family" => AF_INET6, "addr" => "::1"],
- "buffer_size" => 2000,
- "controllen" => socket_cmsg_space(IPPROTO_IPV6, IPV6_PKTINFO),
- ];
- if (!socket_recvmsg($s, $data, 0)) die("recvmsg");
- print_r($data);
- --EXPECTF--
- creating send socket
- resource(%d) of type (Socket)
- bool(true)
- creating receive socket
- resource(%d) of type (Socket)
- bool(true)
- int(14)
- Array
- (
- [name] => Array
- (
- [family] => %d
- [addr] => ::1
- [port] => 7001
- [flowinfo] => 0
- [scope_id] => 0
- )
- [control] => Array
- (
- [0] => Array
- (
- [level] => %d
- [type] => %d
- [data] => Array
- (
- [addr] => ::1
- [ifindex] => %d
- )
- )
- )
- [iov] => Array
- (
- [0] => testing packet
- )
- [flags] => 0
- )
|