From: Pierre Joye Date: Wed, 8 Sep 2010 10:26:59 +0000 (+0000) Subject: - WS X-Git-Tag: php-5.3.4RC1~262 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b310ce9ccc7595d8972c8247b8f570409ecb2a01;p=php - WS --- diff --git a/main/network.c b/main/network.c index 6d30ae261b..589d5a1cd3 100644 --- a/main/network.c +++ b/main/network.c @@ -125,7 +125,7 @@ static const char *php_gai_strerror(int code) {EAI_MEMORY, "Memory allocation failure"}, # ifdef EAI_NODATA {EAI_NODATA, "No address associated with hostname"}, -# endif +# endif {EAI_NONAME, "Name or service not known"}, {EAI_SERVICE, "Servname not supported for ai_socktype"}, {EAI_SOCKTYPE, "ai_socktype not supported"}, @@ -139,7 +139,7 @@ static const char *php_gai_strerror(int code) return (char *)values[i].msg; } } - + return "Unknown error"; } /* }}} */ @@ -182,10 +182,10 @@ static int php_network_getaddresses(const char *host, int socktype, struct socka } #if HAVE_GETADDRINFO memset(&hints, '\0', sizeof(hints)); - + hints.ai_family = AF_INET; /* default to regular inet (see below) */ hints.ai_socktype = socktype; - + # if HAVE_IPV6 /* probe for a working IPv6 stack; even if detected as having v6 at compile * time, at runtime some stacks are slow to resolve or have other issues @@ -228,17 +228,17 @@ static int php_network_getaddresses(const char *host, int socktype, struct socka sai = res; for (n = 1; (sai = sai->ai_next) != NULL; n++) ; - + *sal = safe_emalloc((n + 1), sizeof(*sal), 0); sai = res; sap = *sal; - + do { *sap = emalloc(sai->ai_addrlen); memcpy(*sap, sai->ai_addr, sai->ai_addrlen); sap++; } while ((sai = sai->ai_next) != NULL); - + freeaddrinfo(res); #else if (!inet_aton(host, &in)) { @@ -313,7 +313,7 @@ PHPAPI int php_network_connect_socket(php_socket_t sockfd, int ret = 0; SET_SOCKET_BLOCKING_MODE(sockfd, orig_flags); - + if ((n = connect(sockfd, addr, addrlen)) != 0) { error = php_socket_errno(); @@ -459,14 +459,14 @@ php_socket_t php_network_bind_socket_to_local_addr(const char *host, unsigned po if (sa) { /* attempt to bind */ - + #ifdef SO_REUSEADDR { int val = 1; setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char*)&val, sizeof(val)); } #endif - + n = bind(sock, sa, socklen); if (n != SOCK_CONN_ERR) { @@ -486,13 +486,13 @@ php_socket_t php_network_bind_socket_to_local_addr(const char *host, unsigned po if (error_string) { *error_string = php_socket_strerror(err, NULL, 0); } - + bound: php_network_freeaddresses(psal); - + return sock; - + } /* }}} */ @@ -610,7 +610,7 @@ 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 = spprintf(textaddr, 0, "%s:%d", + *textaddrlen = spprintf(textaddr, 0, "%s:%d", buf, ntohs(((struct sockaddr_in*)sa)->sin_port)); } @@ -620,7 +620,7 @@ 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 = spprintf(textaddr, 0, "%s:%d", + *textaddrlen = spprintf(textaddr, 0, "%s:%d", buf, ntohs(((struct sockaddr_in6*)sa)->sin6_port)); } @@ -651,7 +651,7 @@ PHPAPI void php_network_populate_name_from_sockaddr( } } -PHPAPI int php_network_get_peer_name(php_socket_t sock, +PHPAPI int php_network_get_peer_name(php_socket_t sock, char **textaddr, long *textaddrlen, struct sockaddr **addr, socklen_t *addrlen @@ -660,7 +660,7 @@ PHPAPI int php_network_get_peer_name(php_socket_t sock, php_sockaddr_storage sa; socklen_t sl = sizeof(sa); memset(&sa, 0, sizeof(sa)); - + if (getpeername(sock, (struct sockaddr*)&sa, &sl) == 0) { php_network_populate_name_from_sockaddr((struct sockaddr*)&sa, sl, textaddr, textaddrlen, @@ -671,7 +671,7 @@ PHPAPI int php_network_get_peer_name(php_socket_t sock, return -1; } -PHPAPI int php_network_get_sock_name(php_socket_t sock, +PHPAPI int php_network_get_sock_name(php_socket_t sock, char **textaddr, long *textaddrlen, struct sockaddr **addr, socklen_t *addrlen @@ -680,7 +680,7 @@ PHPAPI int php_network_get_sock_name(php_socket_t sock, php_sockaddr_storage sa; socklen_t sl = sizeof(sa); memset(&sa, 0, sizeof(sa)); - + if (getsockname(sock, (struct sockaddr*)&sa, &sl) == 0) { php_network_populate_name_from_sockaddr((struct sockaddr*)&sa, sl, textaddr, textaddrlen, @@ -715,7 +715,7 @@ PHPAPI php_socket_t php_network_accept_incoming(php_socket_t srvsock, int error = 0, n; php_sockaddr_storage sa; socklen_t sl; - + n = php_pollfd_for(srvsock, PHP_POLLREADABLE, timeout); if (n == 0) { @@ -736,18 +736,18 @@ PHPAPI php_socket_t php_network_accept_incoming(php_socket_t srvsock, error = php_socket_errno(); } } - + if (error_code) { *error_code = error; } if (error_string) { *error_string = php_socket_strerror(error, NULL, 0); } - + return clisock; } /* }}} */ - + /* Connect to a remote host using an interruptible connect with optional timeout. @@ -759,7 +759,7 @@ PHPAPI php_socket_t php_network_accept_incoming(php_socket_t srvsock, /* {{{ php_network_connect_socket_to_host */ php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short port, int socktype, int asynchronous, struct timeval *timeout, char **error_string, - int *error_code, char *bindto, unsigned short bindport + int *error_code, char *bindto, unsigned short bindport TSRMLS_DC) { int num_addrs, n, fatal = 0; @@ -837,7 +837,7 @@ php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short local_address = (struct sockaddr*)in4; local_address_len = sizeof(struct sockaddr_in); - + in4->sin_family = sa->sa_family; in4->sin_port = htons(bindport); if (!inet_aton(bindto, &in4->sin_addr)) { @@ -852,7 +852,7 @@ php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short local_address = (struct sockaddr*)in6; local_address_len = sizeof(struct sockaddr_in6); - + in6->sin6_family = sa->sa_family; in6->sin6_port = htons(bindport); if (inet_pton(AF_INET6, bindto, &in6->sin6_addr) < 1) { @@ -874,7 +874,7 @@ skip_bind: efree(*error_string); *error_string = NULL; } - + n = php_network_connect_socket(sock, sa, socklen, asynchronous, timeout ? &working_timeout : NULL, error_string, error_code); @@ -919,7 +919,7 @@ skip_bind: connected: php_network_freeaddresses(psal); - + return sock; } /* }}} */ @@ -996,7 +996,7 @@ PHPAPI char *php_socket_strerror(long err, char *buf, size_t bufsize) int free_it = 1; if (!FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, @@ -1077,7 +1077,7 @@ PHPAPI int php_set_sock_blocking(int socketd, int block TSRMLS_DC) flags = !block; if (ioctlsocket(socketd, FIONBIO, &flags) == SOCKET_ERROR) { char *error_string; - + error_string = php_socket_strerror(WSAGetLastError(), NULL, 0); php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", error_string); efree(error_string);