]> granicus.if.org Git - php/commitdiff
- Fixed bug #44127 (UNIX abstract namespace socket connect does not work)
authorJani Taskinen <jani@php.net>
Wed, 16 Jul 2008 14:08:04 +0000 (14:08 +0000)
committerJani Taskinen <jani@php.net>
Wed, 16 Jul 2008 14:08:04 +0000 (14:08 +0000)
ext/phar/config.m4
ext/sockets/sockets.c
ext/sockets/tests/ipv4loop.phpt
ext/sockets/tests/ipv6loop.phpt
main/streams/xp_socket.c

index 78b4fa30c754ef982bd0cfd60dcbc89e8713820e..33dca2c9d061580cd3722d0d461ae94f634bcf64 100644 (file)
@@ -2,7 +2,7 @@ dnl $Id$
 dnl config.m4 for extension phar
 
 PHP_ARG_ENABLE(phar, for phar archive support,
-[  --enable-phar           Enable phar support])
+[  --disable-phar          Disable phar support], yes)
 
 if test "$PHP_PHAR" != "no"; then
   PHP_NEW_EXTENSION(phar, util.c tar.c zip.c stream.c func_interceptors.c dirstream.c phar.c phar_object.c phar_path_check.c, $ext_shared)
index 2357214d5c421fb450b9a447c2a157563db81d69..dd0ab791133fd2909a472834f319863a375c0b2a 100644 (file)
@@ -1318,8 +1318,8 @@ PHP_FUNCTION(socket_connect)
                        memset(&s_un, 0, sizeof(struct sockaddr_un));
 
                        s_un.sun_family = AF_UNIX;
-                       snprintf(s_un.sun_path, 108, "%s", addr);
-                       retval = connect(php_sock->bsd_socket, (struct sockaddr *) &s_un, SUN_LEN(&s_un));
+                       memcpy(&s_un.sun_path, addr, addr_len);
+                       retval = connect(php_sock->bsd_socket, (struct sockaddr *) &s_un, (socklen_t) XtOffsetOf(struct sockaddr_un, sun_path) + addr_len);
                        break;
 
                default:
index 7c6c0db31ee437491b240ca246dad6e97dc285c7..9fdcc17dad06f4ad6ce95aee82e274a56d0862f0 100644 (file)
@@ -3,7 +3,7 @@ IPv4 Loopback test
 --SKIPIF--
 <?php
        if (!extension_loaded('sockets')) {
-               die('skip sockets extenion not available.');
+               die('skip sockets extension not available.');
        }
 ?>
 --FILE--
index 45d2a05fc06a80661414a73e7a226041af4e9064..6fb584045f7cc4b653edfdcd260edb58f199d0bf 100644 (file)
@@ -3,7 +3,7 @@ IPv6 Loopback test
 --SKIPIF--
 <?php
        if (!extension_loaded('sockets')) {
-               die('skip sockets extenion not available.');
+               die('skip sockets extension not available.');
        }
        if (!defined("AF_INET6")) {
                die('skip no IPv6 support');
index 4d58aebcba7ffc62157ee01f1fb23bf14b6d4430..a51c704e6360b0873012f034a4db78a3530fdde0 100644 (file)
@@ -621,7 +621,7 @@ static inline int php_tcp_sockop_connect(php_stream *stream, php_netstream_data_
                parse_unix_address(xparam, &unix_addr TSRMLS_CC);
 
                ret = php_network_connect_socket(sock->socket,
-                               (const struct sockaddr *)&unix_addr, (socklen_t)sizeof(unix_addr),
+                               (const struct sockaddr *)&unix_addr, (socklen_t) XtOffsetOf(struct sockaddr_un, sun_path) + xparam->inputs.namelen,
                                xparam->op == STREAM_XPORT_OP_CONNECT_ASYNC, xparam->inputs.timeout,
                                xparam->want_errortext ? &xparam->outputs.error_text : NULL,
                                &err);