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