]> git.kaiwu.me - nginx.git/commitdiff
use ngx_inet6_addr()
authorIgor Sysoev <igor@sysoev.ru>
Mon, 2 Nov 2009 12:58:30 +0000 (12:58 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 2 Nov 2009 12:58:30 +0000 (12:58 +0000)
src/core/ngx_inet.c

index 9b039f5dd330cddd6fe8ca00d9603301c906e5bb..c6f36fe9cbd45fa604c83d523eaf9073f8a8c219 100644 (file)
@@ -698,7 +698,6 @@ static ngx_int_t
 ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
 {
 #if (NGX_HAVE_INET6)
-    int                   rc;
     u_char               *p, *host, *port, *last, *uri;
     size_t                len;
     ngx_int_t             n;
@@ -770,35 +769,10 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
         return NGX_ERROR;
     }
 
-    u->host.len = len++;
+    u->host.len = len;
     u->host.data = host;
 
-    p = ngx_alloc(len, pool->log);
-    if (p == NULL) {
-        return NGX_ERROR;
-    }
-
-    (void) ngx_cpystrn(p, host, len);
-
-#if (NGX_WIN32)
-
-    rc = WSAStringToAddress((char *) p, AF_INET6, NULL,
-                            (SOCKADDR *) sin6, &u->socklen);
-    rc = !rc;
-
-    if (u->port) {
-        sin6->sin6_port = htons(u->port);
-    }
-
-#else
-
-    rc = inet_pton(AF_INET6, (const char *) p, &sin6->sin6_addr);
-
-#endif
-
-    ngx_free(p);
-
-    if (rc == 0) {
+    if (ngx_inet6_addr(host, len, (u_char *) &sin6->sin6_addr) != NGX_OK) {
         u->err = "invalid IPv6 address";
         return NGX_ERROR;
     }