1--TEST--
2Multicast support: IPv4 send options
3--SKIPIF--
4<?php
5if (!extension_loaded('sockets')) {
6    die('skip sockets extension not available.');
7}
8$s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP) or die("err");
9if (socket_set_option($s, IPPROTO_IP, IP_MULTICAST_IF, 1) === false) {
10	die("skip interface 1 either doesn't exist or has no ipv4 address");
11}
12--FILE--
13<?php
14$domain = AF_INET;
15$level = IPPROTO_IP;
16$s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
17
18echo "Setting IP_MULTICAST_TTL\n";
19$r = socket_set_option($s, $level, IP_MULTICAST_TTL, 9);
20var_dump($r);
21$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
22var_dump($r);
23echo "\n";
24
25echo "Setting IP_MULTICAST_LOOP\n";
26$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, 0);
27var_dump($r);
28$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
29var_dump($r);
30$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, 1);
31var_dump($r);
32$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
33var_dump($r);
34echo "\n";
35
36echo "Setting IP_MULTICAST_IF\n";
37echo "interface 0:\n";
38$r = socket_set_option($s, $level, IP_MULTICAST_IF, 0);
39var_dump($r);
40$r = socket_get_option($s, $level, IP_MULTICAST_IF);
41var_dump($r);
42echo "interface 1:\n";
43$r = socket_set_option($s, $level, IP_MULTICAST_IF, 1);
44var_dump($r);
45$r = socket_get_option($s, $level, IP_MULTICAST_IF);
46var_dump($r);
47echo "\n";
48
49--EXPECT--
50Setting IP_MULTICAST_TTL
51bool(true)
52int(9)
53
54Setting IP_MULTICAST_LOOP
55bool(true)
56int(0)
57bool(true)
58int(1)
59
60Setting IP_MULTICAST_IF
61interface 0:
62bool(true)
63int(0)
64interface 1:
65bool(true)
66int(1)
67