iliaa           Mon May  4 13:09:15 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/main       network.c 
  Log:
  Fixed bug #48131 (Don't try to bind ipv4 addresses to ipv6 ips via bindto)
  
  
http://cvs.php.net/viewvc.cgi/php-src/main/network.c?r1=1.118.2.2.2.6.2.14&r2=1.118.2.2.2.6.2.15&diff_format=u
Index: php-src/main/network.c
diff -u php-src/main/network.c:1.118.2.2.2.6.2.14 
php-src/main/network.c:1.118.2.2.2.6.2.15
--- php-src/main/network.c:1.118.2.2.2.6.2.14   Sat Jan  3 00:06:33 2009
+++ php-src/main/network.c      Mon May  4 13:09:15 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: network.c,v 1.118.2.2.2.6.2.14 2009/01/03 00:06:33 felipe Exp $ */
+/* $Id: network.c,v 1.118.2.2.2.6.2.15 2009/05/04 13:09:15 iliaa Exp $ */
 
 /*#define DEBUG_MAIN_NETWORK 1*/
 
@@ -792,9 +792,14 @@
                switch (sa->sa_family) {
 #if HAVE_GETADDRINFO && HAVE_IPV6
                        case AF_INET6:
-                               ((struct sockaddr_in6 *)sa)->sin6_family = 
sa->sa_family;
-                               ((struct sockaddr_in6 *)sa)->sin6_port = 
htons(port);
-                               socklen = sizeof(struct sockaddr_in6);
+                               if (strstr(bindto, ':')) {
+                                       ((struct sockaddr_in6 
*)sa)->sin6_family = sa->sa_family;
+                                       ((struct sockaddr_in6 *)sa)->sin6_port 
= htons(port);
+                                       socklen = sizeof(struct sockaddr_in6);
+                               } else {
+                                       socklen = 0;
+                                       sa = NULL;
+                               }
                                break;
 #endif
                        case AF_INET:
@@ -814,7 +819,7 @@
                        if (bindto) {
                                struct sockaddr *local_address = NULL;
                                int local_address_len = 0;
-                       
+
                                if (sa->sa_family == AF_INET) {
                                        struct sockaddr_in *in4 = 
emalloc(sizeof(struct sockaddr_in));
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to