mcast_ipv6_send.phpt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. Multicast support: IPv6 send options
  3. --EXTENSIONS--
  4. sockets
  5. --SKIPIF--
  6. <?php
  7. if (getenv('CI_NO_IPV6') || !defined('IPPROTO_IPV6')) {
  8. die('skip IPv6 not available.');
  9. }
  10. $level = IPPROTO_IPV6;
  11. $s = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP) or die("skip Can not create socket");
  12. if (socket_set_option($s, $level, IPV6_MULTICAST_IF, 1) === false) {
  13. die("skip interface 1 either doesn't exist or has no ipv6 address");
  14. }
  15. --FILE--
  16. <?php
  17. $domain = AF_INET6;
  18. $level = IPPROTO_IPV6;
  19. $s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
  20. echo "Setting IPV6_MULTICAST_TTL\n";
  21. $r = socket_set_option($s, $level, IPV6_MULTICAST_HOPS, 9);
  22. var_dump($r);
  23. $r = socket_get_option($s, $level, IPV6_MULTICAST_HOPS);
  24. var_dump($r);
  25. echo "\n";
  26. echo "Setting IPV6_MULTICAST_LOOP\n";
  27. $r = socket_set_option($s, $level, IPV6_MULTICAST_LOOP, 0);
  28. var_dump($r);
  29. $r = socket_get_option($s, $level, IPV6_MULTICAST_LOOP);
  30. var_dump($r);
  31. $r = socket_set_option($s, $level, IPV6_MULTICAST_LOOP, 1);
  32. var_dump($r);
  33. $r = socket_get_option($s, $level, IPV6_MULTICAST_LOOP);
  34. var_dump($r);
  35. echo "\n";
  36. echo "Setting IPV6_MULTICAST_IF\n";
  37. echo "interface 0:\n";
  38. $r = socket_set_option($s, $level, IPV6_MULTICAST_IF, 0);
  39. var_dump($r);
  40. $r = socket_get_option($s, $level, IPV6_MULTICAST_IF);
  41. var_dump($r);
  42. echo "interface 1:\n";
  43. $r = socket_set_option($s, $level, IPV6_MULTICAST_IF, 1);
  44. var_dump($r);
  45. $r = socket_get_option($s, $level, IPV6_MULTICAST_IF);
  46. var_dump($r);
  47. echo "\n";
  48. ?>
  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)