]> granicus.if.org Git - php/commitdiff
Ensure that port numbers get set in the peer/socket name functions.
authorWez Furlong <wez@php.net>
Wed, 28 Jul 2004 23:30:23 +0000 (23:30 +0000)
committerWez Furlong <wez@php.net>
Wed, 28 Jul 2004 23:30:23 +0000 (23:30 +0000)
(duh!)

main/network.c

index 2bc7c0eb0f3cdc1e194a715d084f233d5aa914b7..1de7ff98c4a5340b3c2cfe0fd603114214f9a91d 100644 (file)
@@ -501,7 +501,7 @@ PHPAPI int php_network_parse_network_address_with_port(const char *addr, long ad
                addr++;
        } else {
                colon = memchr(addr, ':', addrlen);
-               if (!colon || colon[1] != ':') {
+               if (!colon) {
                        return FAILURE;
                }
                port = atoi(colon + 1);
@@ -592,8 +592,8 @@ PHPAPI void php_network_populate_name_from_sockaddr(
                                /* generally not thread safe, but it *is* thread safe under win32 */
                                buf = inet_ntoa(((struct sockaddr_in*)sa)->sin_addr);
                                if (buf) {
-                                       *textaddrlen = strlen(buf);
-                                       *textaddr = estrndup(buf, *textaddrlen);
+                                       *textaddrlen = spprintf(textaddr, 0, "%s:%d", 
+                                               buf, ntohs(((struct sockaddr_in*)sa)->sin_port));
                                }
 
                                break;
@@ -602,8 +602,8 @@ PHPAPI void php_network_populate_name_from_sockaddr(
                        case AF_INET6:
                                buf = (char*)inet_ntop(sa->sa_family, &((struct sockaddr_in6*)sa)->sin6_addr, (char *)&abuf, sizeof(abuf));
                                if (buf) {
-                                       *textaddrlen = strlen(buf);
-                                       *textaddr = estrndup(buf, *textaddrlen);
+                                       *textaddrlen = spprintf(textaddr, 0, "%s:%d", 
+                                               buf, ntohs(((struct sockaddr_in6*)sa)->sin6_port));
                                }
 
                                break;