Edit report at https://bugs.php.net/bug.php?id=63000&edit=1
ID: 63000 Comment by: reeze dot xia at gmail dot com Reported by: igor at wiedler dot ch Summary: MCAST_JOIN_GROUP on OSX is broken Status: Open Type: Bug Package: Sockets related Operating System: Mac OSX 10.7, 10.8 PHP Version: 5.4.6 Block user comment: N Private report: N New Comment: Ah, you mention which version the bug exist, both 10.7&10.8 right ? Is there any way to detect whether is broken or not disable it seems not a better choice. Previous Comments: ------------------------------------------------------------------------ [2012-09-02 21:41:13] igor at wiedler dot ch See also: http://trac.videolan.org/vlc/ticket/6104#comment:19 ------------------------------------------------------------------------ [2012-09-02 21:38:36] igor at wiedler dot ch Description: ------------ The multicast support in PHP 5.4 makes use of MCAST_JOIN_GROUP if it is present. The problem is that OSX 10.7 added the constant, but did not correctly implement the feature. This causes the setsockopt call to fail. The solution to the problem is to not use MCAST_JOIN_GROUP on OSX. Test script: --------------- <?php if (!extension_loaded('sockets')) { die('skip sockets extension not available.'); } if (PHP_OS !== 'Darwin') { die('is not OSX.'); } $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); Expected result: ---------------- bool(true) Actual result: -------------- PHP Warning: socket_set_option(): unable to set socket option [22]: Invalid argument in /Users/igor/code/react-mdns-userland/src/React/Mdns/Client.php on line 27 PHP Stack trace: PHP 1. {main}() /Users/igor/code/react-mdns-userland/examples/client.php:0 PHP 2. React\Mdns\Client->query() /Users/igor/code/react-mdns- userland/examples/client.php:10 PHP 3. socket_set_option() /Users/igor/code/react-mdns- userland/src/React/Mdns/Client.php:27 bool(false) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63000&edit=1