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