mcast_ipv6_send.phpt 1.7 KB

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