Commit:    6f3c3862ca5c136bb123c1e60e1f163bb7efcf3f
Author:    Gustavo Lopes <glo...@nebm.ist.utl.pt>         Wed, 8 May 2013 
19:51:39 +0200
Parents:   288f04c430b271c416b4cc0a4cef7845927be7b0
Branches:  master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=6f3c3862ca5c136bb123c1e60e1f163bb7efcf3f

Log:
Fix bug #64506: fix build with --disable-ipv6

Bugs:
https://bugs.php.net/64506

Changed paths:
  M  NEWS
  M  ext/sockets/conversions.c
  M  ext/sockets/sendrecvmsg.c
  M  ext/sockets/sockets.c

diff --git a/NEWS b/NEWS
index 2a3b917..67e5196 100644
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,9 @@ PHP                                                           
             NEWS
     (Boris Lytochkin)
   . Fixed bug #64159 (Truncated snmpget). (Boris Lytochkin)
 
+- Sockets:
+  . Fixed bug #64506 (Fails to build with --disable-ipv6). (Gustavo)
+
 - Streams:
   . Fixed bug #64770 (stream_select() fails with pipes returned by proc_open()
     on Windows x64). (Anatol)
@@ -28,7 +31,7 @@ PHP                                                           
             NEWS
 25 Apr 2013, PHP 5.5.0 Beta 4
 
 - Core:
-  . Fixed bug #64677 (execution operator `` stealing surrounding arguments). 
+  . Fixed bug #64677 (execution operator `` stealing surrounding arguments).
     (Laruence)
 
 - CURL:
@@ -47,13 +50,13 @@ PHP                                                         
               NEWS
     (Eric Iversen)
 
 - Streams:
-  . Fixed Windows x64 version of stream_socket_pair() and improved error 
handling
-    (Anatol Belski)
+  . Fixed Windows x64 version of stream_socket_pair() and improved error
+    handling. (Anatol Belski)
 
 11 Apr 2013, PHP 5.5.0 Beta 3
 
 - Core:
-  . Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: 
+  . Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap:
     segfault). (Laruence)
   . Fixed bug #64565 (copy doesn't report failure on partial copy). (Remi)
   . Fixed bug #64555 (foreach no longer copies keys if they are interned).
@@ -71,7 +74,7 @@ PHP                                                           
             NEWS
     Kapelushnik, Derick)
 
 - General improvements:
-  . Drop support for bison < 2.4 when building PHP from GIT source. 
+  . Drop support for bison < 2.4 when building PHP from GIT source.
     (Laruence)
 
 - Fileinfo:
@@ -109,7 +112,7 @@ PHP                                                         
               NEWS
 21 Mar 2013, PHP 5.5.0 Beta 1
 
 - Core:
-  . Added Zend Opcache extension and enable building it by default. 
+  . Added Zend Opcache extension and enable building it by default.
     More details here: https://wiki.php.net/rfc/optimizerplus. (Dmitry)
   . Added array_column function which returns a column in a multidimensional
     array. https://wiki.php.net/rfc/array_column. (Ben Ramsey)
@@ -217,7 +220,7 @@ PHP                                                         
               NEWS
   . Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence)
   . Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS).
     (patch by kr...@krizalys.com, Laruence)
-  . Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended). 
+  . Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended).
     (Nikita Popov)
   . Fixed bug #52861 (unset fails with ArrayObject and deep arrays).
     (Mike Willbanks)
diff --git a/ext/sockets/conversions.c b/ext/sockets/conversions.c
index e3ff271..ea1c952 100644
--- a/ext/sockets/conversions.c
+++ b/ext/sockets/conversions.c
@@ -37,7 +37,7 @@ struct _WSAMSG {
     DWORD            dwFlags;                  //int msg_flags
 }
 struct __WSABUF {
-  u_long                       len;                            //size_t 
iov_len (2nd member)
+  u_long                       len;                            //size_t 
iov_len (2nd member)
   char FAR                     *buf;                           //void 
*iov_base (1st member)
 }
 struct _WSACMSGHDR {
@@ -593,6 +593,7 @@ static void to_zval_read_sockaddr_in(const char *data, zval 
*zv, res_context *ct
 {
        to_zval_read_aggregation(data, zv, descriptors_sockaddr_in, ctx);
 }
+#if HAVE_IPV6
 static void from_zval_write_sin6_addr(const zval *zaddr_str, char *addr6, 
ser_context *ctx)
 {
        int                                     res;
@@ -652,6 +653,7 @@ static void to_zval_read_sockaddr_in6(const char *data, 
zval *zv, res_context *c
 {
        to_zval_read_aggregation(data, zv, descriptors_sockaddr_in6, ctx);
 }
+#endif /* HAVE_IPV6 */
 static void from_zval_write_sun_path(const zval *path, char *sockaddr_un_c, 
ser_context *ctx)
 {
        zval                            lzval = zval_used_for_init;
@@ -742,6 +744,7 @@ static void from_zval_write_sockaddr_aux(const zval 
*container,
                }
                break;
 
+#if HAVE_IPV6
        case AF_INET6:
                if (ctx->sock->type != AF_INET6) {
                        do_from_zval_err(ctx, "the specified family (AF_INET6) 
is not "
@@ -755,6 +758,7 @@ static void from_zval_write_sockaddr_aux(const zval 
*container,
                        (*sockaddr_ptr)->sa_family = AF_INET6;
                }
                break;
+#endif /* HAVE_IPV6 */
 
        case AF_UNIX:
                if (ctx->sock->type != AF_UNIX) {
@@ -792,9 +796,11 @@ static void to_zval_read_sockaddr_aux(const char 
*sockaddr_c, zval *zv, res_cont
                to_zval_read_sockaddr_in(sockaddr_c, zv, ctx);
                break;
 
+#if HAVE_IPV6
        case AF_INET6:
                to_zval_read_sockaddr_in6(sockaddr_c, zv, ctx);
                break;
+#endif /* HAVE_IPV6 */
 
        case AF_UNIX:
                to_zval_read_sockaddr_un(sockaddr_c, zv, ctx);
@@ -1283,7 +1289,7 @@ static void from_zval_write_ifindex(const zval *zv, char 
*uinteger, ser_context
 }
 
 /* CONVERSIONS for struct in6_pktinfo */
-#ifdef IPV6_PKTINFO
+#if defined(IPV6_PKTINFO) && HAVE_IPV6
 static const field_descriptor descriptors_in6_pktinfo[] = {
                {"addr", sizeof("addr"), 1, offsetof(struct in6_pktinfo, 
ipi6_addr), from_zval_write_sin6_addr, to_zval_read_sin6_addr},
                {"ifindex", sizeof("ifindex"), 1, offsetof(struct in6_pktinfo, 
ipi6_ifindex), from_zval_write_ifindex, to_zval_read_unsigned},
diff --git a/ext/sockets/sendrecvmsg.c b/ext/sockets/sendrecvmsg.c
index 50b43ec..d9a8190 100644
--- a/ext/sockets/sendrecvmsg.c
+++ b/ext/sockets/sendrecvmsg.c
@@ -43,7 +43,7 @@ inline ssize_t recvmsg(int sockfd, struct msghdr *msg, int 
flags)
 {
        DWORD   recvd = 0,
                        bytesReturned;
-       
+
        if (WSARecvMsg == NULL) {
                int res = WSAIoctl((SOCKET) sockfd, 
SIO_GET_EXTENSION_FUNCTION_POINTER,
                        &WSARecvMsg_GUID, sizeof(WSARecvMsg_GUID),
@@ -105,17 +105,17 @@ static void init_ancillary_registry(void)
        zend_hash_update(&ancillary_registry.ht, (char*)&key, sizeof(key), \
                        (void*)&entry, sizeof(entry), NULL)
 
-#ifdef IPV6_PKTINFO
+#if defined(IPV6_PKTINFO) && HAVE_IPV6
        PUT_ENTRY(sizeof(struct in6_pktinfo), 0, 0, from_zval_write_in6_pktinfo,
                        to_zval_read_in6_pktinfo, IPPROTO_IPV6, IPV6_PKTINFO);
 #endif
 
-#ifdef IPV6_HOPLIMIT
+#if defined(IPV6_HOPLIMIT) && HAVE_IPV6
        PUT_ENTRY(sizeof(int), 0, 0, from_zval_write_int,
                        to_zval_read_int, IPPROTO_IPV6, IPV6_HOPLIMIT);
 #endif
 
-#ifdef IPV6_TCLASS
+#if defined(IPV6_TCLASS) && HAVE_IPV6
        PUT_ENTRY(sizeof(int), 0, 0, from_zval_write_int,
                        to_zval_read_int, IPPROTO_IPV6, IPV6_TCLASS);
 #endif
@@ -310,6 +310,7 @@ PHP_FUNCTION(socket_cmsg_space)
        RETURN_LONG((long)CMSG_SPACE(entry->size + n * entry->var_el_size));
 }
 
+#if HAVE_IPV6
 int php_do_setsockopt_ipv6_rfc3542(php_socket *php_sock, int level, int 
optname, zval **arg4 TSRMLS_DC)
 {
        struct err_s    err = {0};
@@ -401,15 +402,16 @@ int php_do_getsockopt_ipv6_rfc3542(php_socket *php_sock, 
int level, int optname,
 
        return res == 0 ? SUCCESS : FAILURE;
 }
+#endif /* HAVE_IPV6 */
 
 void php_socket_sendrecvmsg_init(INIT_FUNC_ARGS)
 {
        /* IPv6 ancillary data */
-#ifdef IPV6_RECVPKTINFO
+#if defined(IPV6_RECVPKTINFO) && HAVE_IPV6
        REGISTER_LONG_CONSTANT("IPV6_RECVPKTINFO",              
IPV6_RECVPKTINFO,       CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IPV6_PKTINFO",          IPV6_PKTINFO,       
CONST_CS | CONST_PERSISTENT);
 #endif
-#ifdef IPV6_RECVHOPLIMIT
+#if defined(IPV6_RECVHOPLIMIT) && HAVE_IPV6
        REGISTER_LONG_CONSTANT("IPV6_RECVHOPLIMIT",             
IPV6_RECVHOPLIMIT,      CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IPV6_HOPLIMIT",         IPV6_HOPLIMIT,      
CONST_CS | CONST_PERSISTENT);
 #endif
@@ -418,7 +420,7 @@ void php_socket_sendrecvmsg_init(INIT_FUNC_ARGS)
        REGISTER_LONG_CONSTANT("IPV6_RECVHOPOPTS",              
IPV6_RECVHOPOPTS,       CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IPV6_RECVDSTOPTS",              
IPV6_RECVDSTOPTS,       CONST_CS | CONST_PERSISTENT);
        */
-#ifdef IPV6_RECVTCLASS
+#if defined(IPV6_RECVTCLASS) && HAVE_IPV6
        REGISTER_LONG_CONSTANT("IPV6_RECVTCLASS",               
IPV6_RECVTCLASS,        CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IPV6_TCLASS",                   IPV6_TCLASS,    
        CONST_CS | CONST_PERSISTENT);
 #endif
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index f305fa0..b1d0b79 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -1858,7 +1858,9 @@ PHP_FUNCTION(socket_get_option)
                        }
                }
                }
-       } else if (level == IPPROTO_IPV6) {
+       }
+#if HAVE_IPV6
+       else if (level == IPPROTO_IPV6) {
                int ret = php_do_getsockopt_ipv6_rfc3542(php_sock, level, 
optname, return_value TSRMLS_CC);
                if (ret == SUCCESS) {
                        return;
@@ -1866,6 +1868,7 @@ PHP_FUNCTION(socket_get_option)
                        RETURN_FALSE;
                } /* else continue */
        }
+#endif
 
        /* sol_socket options and general case */
        switch(optname) {
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to