Mercurial > hg > nginx
changeset 2528:c1975ccd0215
axe r->in_addr
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 23 Feb 2009 21:05:10 +0000 |
parents | 53e73282785f |
children | 339da812982c |
files | src/http/modules/ngx_http_userid_filter_module.c src/http/ngx_http_core_module.c src/http/ngx_http_request.c src/http/ngx_http_request.h |
diffstat | 4 files changed, 32 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_userid_filter_module.c Mon Feb 23 21:02:18 2009 +0000 +++ b/src/http/modules/ngx_http_userid_filter_module.c Mon Feb 23 21:05:10 2009 +0000 @@ -360,10 +360,16 @@ ngx_http_userid_set_uid(ngx_http_request_t *r, ngx_http_userid_ctx_t *ctx, ngx_http_userid_conf_t *conf) { - u_char *cookie, *p; - size_t len; - ngx_str_t src, dst; - ngx_table_elt_t *set_cookie, *p3p; + u_char *cookie, *p; + size_t len; + ngx_str_t src, dst; + ngx_table_elt_t *set_cookie, *p3p; + ngx_connection_t *c; + struct sockaddr_in *sin; +#if (NGX_HAVE_INET6) + struct sockaddr_in6 *sin6; +#endif + /* * TODO: in the threaded mode the sequencers should be in TLS and their * ranges should be divided between threads @@ -388,7 +394,28 @@ return NGX_ERROR; } - ctx->uid_set[0] = htonl(r->in_addr); + c = r->connection; + + switch (c->local_sockaddr->sa_family) { + +#if (NGX_HAVE_INET6) + case AF_INET6: + sin6 = (struct sockaddr_in6 *) c->local_sockaddr; + + p = (u_char *) &ctx->uid_set[0]; + + *p++ = sin6->sin6_addr.s6_addr[12]; + *p++ = sin6->sin6_addr.s6_addr[13]; + *p++ = sin6->sin6_addr.s6_addr[14]; + *p = sin6->sin6_addr.s6_addr[15]; + + break; +#endif + default: /* AF_INET */ + sin = (struct sockaddr_in *) c->local_sockaddr; + ctx->uid_set[0] = sin->sin_addr.s_addr; + break; + } } else { ctx->uid_set[0] = htonl(conf->service);
--- a/src/http/ngx_http_core_module.c Mon Feb 23 21:02:18 2009 +0000 +++ b/src/http/ngx_http_core_module.c Mon Feb 23 21:05:10 2009 +0000 @@ -1776,7 +1776,6 @@ { socklen_t len; ngx_connection_t *c; - struct sockaddr_in *sin; u_char sa[NGX_SOCKADDRLEN]; c = r->connection; @@ -1799,9 +1798,6 @@ ngx_memcpy(c->local_sockaddr, &sa, len); } - sin = (struct sockaddr_in *) c->local_sockaddr; - r->in_addr = sin->sin_addr.s_addr; - if (s == NULL) { return NGX_OK; } @@ -2065,7 +2061,6 @@ c->data = sr; } - sr->in_addr = r->in_addr; sr->port = r->port; sr->port_text = r->port_text;
--- a/src/http/ngx_http_request.c Mon Feb 23 21:02:18 2009 +0000 +++ b/src/http/ngx_http_request.c Mon Feb 23 21:05:10 2009 +0000 @@ -373,7 +373,6 @@ default: /* AF_INET */ addr = port->addrs; addr_conf = &addr[0].conf; - r->in_addr = addr[0].addr; break; } }
--- a/src/http/ngx_http_request.h Mon Feb 23 21:02:18 2009 +0000 +++ b/src/http/ngx_http_request.h Mon Feb 23 21:05:10 2009 +0000 @@ -384,7 +384,6 @@ ngx_http_post_subrequest_t *post_subrequest; ngx_http_posted_request_t *posted_requests; - uint32_t in_addr; ngx_uint_t port; ngx_str_t *port_text; /* ":80" */ ngx_http_virtual_names_t *virtual_names;