diff options
author | Ondřej Surý <ondrej@sury.org> | 2012-10-25 16:01:25 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2012-10-25 16:01:25 +0200 |
commit | b57a2691d5b72c3894e2d4e0f945cecc6b3a1953 (patch) | |
tree | 012a1408ce8a738d45ae429ca7d7f5389c159915 /ext/sockets | |
parent | 45c0aa447e02c80bd21a23245574231a110cf5a1 (diff) | |
download | php-b57a2691d5b72c3894e2d4e0f945cecc6b3a1953.tar.gz |
Imported Upstream version 5.4.8upstream/5.4.8
Diffstat (limited to 'ext/sockets')
-rw-r--r-- | ext/sockets/multicast.h | 5 | ||||
-rw-r--r-- | ext/sockets/tests/bug63000.phpt | 22 |
2 files changed, 25 insertions, 2 deletions
diff --git a/ext/sockets/multicast.h b/ext/sockets/multicast.h index ccd9b1d2a..5619c9c7f 100644 --- a/ext/sockets/multicast.h +++ b/ext/sockets/multicast.h @@ -19,11 +19,12 @@ /* $Id$ */ #if defined(MCAST_JOIN_GROUP) && \ - (!defined(PHP_WIN32) || (_WIN32_WINNT >= 0x600 && SOCKETS_ENABLE_VISTA_API)) + (!defined(PHP_WIN32) || (_WIN32_WINNT >= 0x600 && SOCKETS_ENABLE_VISTA_API)) && \ + !defined(__APPLE__) #define RFC3678_API 1 /* has block/unblock and source membership, in this case for both IPv4 and IPv6 */ #define HAS_MCAST_EXT 1 -#elif defined(IP_ADD_SOURCE_MEMBERSHIP) +#elif defined(IP_ADD_SOURCE_MEMBERSHIP) && !defined(__APPLE__) /* has block/unblock and source membership, but only for IPv4 */ #define HAS_MCAST_EXT 1 #endif diff --git a/ext/sockets/tests/bug63000.phpt b/ext/sockets/tests/bug63000.phpt new file mode 100644 index 000000000..c806ba4c0 --- /dev/null +++ b/ext/sockets/tests/bug63000.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #63000: Multicast on OSX +--SKIPIF-- +<?php +if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); +} +if (PHP_OS !== 'Darwin') { + die('is not OSX.'); +} +--FILE-- +<?php +$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); +socket_bind($socket, '0.0.0.0', 31057); + +$so = socket_set_option($socket, IPPROTO_IP, MCAST_JOIN_GROUP, array( + "group" => '224.0.0.251', + "interface" => 0, +)); +var_dump($so); +--EXPECTF-- +bool(true) |