]> git.pld-linux.org Git - packages/php.git/blob - php-5.3.7-bug-51958.patch
use /usr/sbin/php-fpm as other branches
[packages/php.git] / php-5.3.7-bug-51958.patch
1 --- PHP_5_3/ext/sockets/sockets.c       2011/03/14 22:27:40     309237
2 +++ PHP_5_3/ext/sockets/sockets.c       2011/03/14 22:59:05     309238
3 @@ -402,16 +402,13 @@
4  }
5  /* }}} */
6  
7 -static int php_accept_connect(php_socket *in_sock, php_socket **new_sock, struct sockaddr *la TSRMLS_DC) /* {{{ */
8 +static int php_accept_connect(php_socket *in_sock, php_socket **new_sock, struct sockaddr *la, socklen_t *la_len TSRMLS_DC) /* {{{ */
9  {
10 -       socklen_t       salen;
11         php_socket      *out_sock = (php_socket*)emalloc(sizeof(php_socket));
12  
13         *new_sock = out_sock;
14 -       salen = sizeof(*la);
15 -       out_sock->blocking = 1;
16  
17 -       out_sock->bsd_socket = accept(in_sock->bsd_socket, la, &salen);
18 +       out_sock->bsd_socket = accept(in_sock->bsd_socket, la, la_len);
19  
20         if (IS_INVALID_SOCKET(out_sock)) {
21                 PHP_SOCKET_ERROR(out_sock, "unable to accept incoming connection", errno);
22 @@ -419,6 +416,10 @@
23                 return 0;
24         }
25  
26 +       out_sock->error = 0;
27 +       out_sock->blocking = 1;
28 +       out_sock->type = la->sa_family;
29 +
30         return 1;
31  }
32  /* }}} */
33 @@ -1023,9 +1024,10 @@
34     Accepts a connection on the listening socket fd */
35  PHP_FUNCTION(socket_accept)
36  {
37 -       zval                            *arg1;
38 -       php_socket                      *php_sock, *new_sock;
39 -       struct sockaddr_in      sa;
40 +       zval                             *arg1;
41 +       php_socket                       *php_sock, *new_sock;
42 +       php_sockaddr_storage sa;
43 +       socklen_t                        sa_len = sizeof(sa);
44  
45         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &arg1) == FAILURE) {
46                 return;
47 @@ -1033,12 +1035,9 @@
48  
49         ZEND_FETCH_RESOURCE(php_sock, php_socket *, &arg1, -1, le_socket_name, le_socket);
50  
51 -       if (!php_accept_connect(php_sock, &new_sock, (struct sockaddr *) &sa TSRMLS_CC)) {
52 +       if (!php_accept_connect(php_sock, &new_sock, (struct sockaddr*)&sa, &sa_len TSRMLS_CC)) {
53                 RETURN_FALSE;
54         }
55 -
56 -       new_sock->error = 0;
57 -       new_sock->blocking = 1;
58  
59         ZEND_REGISTER_RESOURCE(return_value, new_sock, le_socket);
60  }
This page took 0.027046 seconds and 3 git commands to generate.