Mercurial > hg > nginx-vendor-current
comparison src/http/modules/ngx_http_geoip_module.c @ 686:2e8a942c8872 NGINX_1_3_6
nginx 1.3.6
*) Feature: the ngx_http_gunzip_filter_module.
*) Feature: the "memcached_gzip_flag" directive.
*) Feature: the "always" parameter of the "gzip_static" directive.
*) Bugfix: in the "limit_req" directive; the bug had appeared in 1.1.14.
Thanks to Charles Chen.
*) Bugfix: nginx could not be built by gcc 4.7 with -O2 optimization if
the --with-ipv6 option was used.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 12 Sep 2012 00:00:00 +0400 |
parents | bfa81a0490a2 |
children |
comparison
equal
deleted
inserted
replaced
685:0a9f545d4f4b | 686:2e8a942c8872 |
---|---|
224 } | 224 } |
225 | 225 |
226 #if (NGX_HAVE_INET6) | 226 #if (NGX_HAVE_INET6) |
227 | 227 |
228 if (addr.sockaddr->sa_family == AF_INET6) { | 228 if (addr.sockaddr->sa_family == AF_INET6) { |
229 u_char *p; | |
230 in_addr_t inaddr; | |
229 struct in6_addr *inaddr6; | 231 struct in6_addr *inaddr6; |
230 | 232 |
231 inaddr6 = &((struct sockaddr_in6 *) addr.sockaddr)->sin6_addr; | 233 inaddr6 = &((struct sockaddr_in6 *) addr.sockaddr)->sin6_addr; |
232 | 234 |
233 if (IN6_IS_ADDR_V4MAPPED(inaddr6)) { | 235 if (IN6_IS_ADDR_V4MAPPED(inaddr6)) { |
234 return ntohl(*(in_addr_t *) &inaddr6->s6_addr[12]); | 236 p = inaddr6->s6_addr; |
237 | |
238 inaddr = p[12] << 24; | |
239 inaddr += p[13] << 16; | |
240 inaddr += p[14] << 8; | |
241 inaddr += p[15]; | |
242 | |
243 return inaddr; | |
235 } | 244 } |
236 } | 245 } |
237 | 246 |
238 #endif | 247 #endif |
239 | 248 |