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

Reply via email to