svn: /php/php-src/ branches/PHP_5_4/ext/sockets/multicast.c trunk/ext/sockets/multicast.c
| From: | Gustavo André dos Santos Lopes | Date: | Mon, 11 Jul 2011 08:29:39 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_4/ext/sockets/multicast.c trunk/ext/sockets/multicast.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-65451@lists.php.net to get a copy of this message | ||
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;
}