summaryrefslogtreecommitdiff
path: root/ext/sockets/tests/mcast_ipv4_send_error.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sockets/tests/mcast_ipv4_send_error.phpt')
-rw-r--r--ext/sockets/tests/mcast_ipv4_send_error.phpt79
1 files changed, 79 insertions, 0 deletions
diff --git a/ext/sockets/tests/mcast_ipv4_send_error.phpt b/ext/sockets/tests/mcast_ipv4_send_error.phpt
new file mode 100644
index 0000000..5cd3d8e
--- /dev/null
+++ b/ext/sockets/tests/mcast_ipv4_send_error.phpt
@@ -0,0 +1,79 @@
+--TEST--
+Multicast support: IPv4 send options with unusual values
+--SKIPIF--
+<?php
+if (!extension_loaded('sockets')) {
+ die('skip sockets extension not available.');
+}
+if (socket_set_option($s, $level, IP_MULTICAST_IF, 1) === false) {
+ die("skip interface 1 either doesn't exist or has no ipv4 address");
+}
+--FILE--
+<?php
+$domain = AF_INET;
+$level = IPPROTO_IP;
+$s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
+
+echo "Setting IP_MULTICAST_LOOP with 256\n";
+//if we had a simple cast to unsigned char, this would be the same as 0
+$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, 256);
+var_dump($r);
+$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
+var_dump($r);
+echo "\n";
+
+echo "Setting IP_MULTICAST_LOOP with false\n";
+//should convert to (unsigned char)0
+$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, false);
+var_dump($r);
+$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
+var_dump($r);
+echo "\n";
+
+echo "Setting IP_MULTICAST_TTL with 256\n";
+//if we had a simple cast to unsigned char, this would be the same as 0
+$r = socket_set_option($s, $level, IP_MULTICAST_TTL, 256);
+var_dump($r);
+$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
+var_dump($r);
+echo "\n";
+
+echo "Setting IP_MULTICAST_TTL with \"254\"\n";
+$r = socket_set_option($s, $level, IP_MULTICAST_TTL, "254");
+var_dump($r);
+$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
+var_dump($r);
+echo "\n";
+
+echo "Setting IP_MULTICAST_TTL with -1\n";
+//should give error, not be the same as 255
+$r = socket_set_option($s, $level, IP_MULTICAST_TTL, -1);
+var_dump($r);
+$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
+var_dump($r);
+echo "\n";
+
+--EXPECTF--
+Setting IP_MULTICAST_LOOP with 256
+bool(true)
+int(1)
+
+Setting IP_MULTICAST_LOOP with false
+bool(true)
+int(0)
+
+Setting IP_MULTICAST_TTL with 256
+
+Warning: socket_set_option(): Expected a value between 0 and 255 in %s on line %d
+bool(false)
+int(1)
+
+Setting IP_MULTICAST_TTL with "254"
+bool(true)
+int(254)
+
+Setting IP_MULTICAST_TTL with -1
+
+Warning: socket_set_option(): Expected a value between 0 and 255 in %s on line %d
+bool(false)
+int(254)