cataphract Mon, 11 Jul 2011 08:29:39 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=313126
Log: - Further fix for bug #55111 (compilation failure of ext/sockets in Mac OS X). Bug: https://bugs.php.net/55111 (Feedback) Make fails with --enable-sockets Changed paths: U php/php-src/branches/PHP_5_4/ext/sockets/multicast.c U php/php-src/trunk/ext/sockets/multicast.c Modified: php/php-src/branches/PHP_5_4/ext/sockets/multicast.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/sockets/multicast.c 2011-07-11 07:10:30 UTC (rev 313125) +++ php/php-src/branches/PHP_5_4/ext/sockets/multicast.c 2011-07-11 08:29:39 UTC (rev 313126) @@ -423,8 +423,8 @@ #define ifr_ifindex ifr_index #endif +#if defined(SIOCGIFNAME) if_req.ifr_ifindex = if_index; -#if defined(SIOCGIFNAME) if (ioctl(php_sock->bsd_socket, SIOCGIFNAME, &if_req) == -1) { #elif defined(HAVE_IF_INDEXTONAME) if (if_indextoname(if_index, if_req.ifr_name) == NULL) { @@ -503,14 +503,25 @@ if ((((struct sockaddr*)&cur_req->ifr_addr)->sa_family == AF_INET) && (((struct sockaddr_in*)&cur_req->ifr_addr)->sin_addr.s_addr == addr->s_addr)) { +#if defined(SIOCGIFINDEX) if (ioctl(php_sock->bsd_socket, SIOCGIFINDEX, (char*)cur_req) == -1) { +#elif defined(HAVE_IF_NAMETOINDEX) + unsigned index_tmp; + if ((index_tmp = if_nametoindex(cur_req->ifr_name)) == 0) { +#else +#error Neither SIOCGIFINDEX nor if_nametoindex are available +#endif php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error converting interface name to index: error %d", errno); goto err; } else { +#if defined(SIOCGIFINDEX) *if_index = cur_req->ifr_ifindex; +#else + *if_index = index_tmp; +#endif efree(buf); return SUCCESS; } Modified: php/php-src/trunk/ext/sockets/multicast.c =================================================================== --- php/php-src/trunk/ext/sockets/multicast.c 2011-07-11 07:10:30 UTC (rev 313125) +++ php/php-src/trunk/ext/sockets/multicast.c 2011-07-11 08:29:39 UTC (rev 313126) @@ -423,8 +423,8 @@ #define ifr_ifindex ifr_index #endif +#if defined(SIOCGIFNAME) if_req.ifr_ifindex = if_index; -#if defined(SIOCGIFNAME) if (ioctl(php_sock->bsd_socket, SIOCGIFNAME, &if_req) == -1) { #elif defined(HAVE_IF_INDEXTONAME) if (if_indextoname(if_index, if_req.ifr_name) == NULL) { @@ -503,14 +503,25 @@ if ((((struct sockaddr*)&cur_req->ifr_addr)->sa_family == AF_INET) && (((struct sockaddr_in*)&cur_req->ifr_addr)->sin_addr.s_addr == addr->s_addr)) { +#if defined(SIOCGIFINDEX) if (ioctl(php_sock->bsd_socket, SIOCGIFINDEX, (char*)cur_req) == -1) { +#elif defined(HAVE_IF_NAMETOINDEX) + unsigned index_tmp; + if ((index_tmp = if_nametoindex(cur_req->ifr_name)) == 0) { +#else +#error Neither SIOCGIFINDEX nor if_nametoindex are available +#endif php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error converting interface name to index: error %d", errno); goto err; } else { +#if defined(SIOCGIFINDEX) *if_index = cur_req->ifr_ifindex; +#else + *if_index = index_tmp; +#endif efree(buf); return SUCCESS; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php