diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index 1aef755a1..471a53cf8 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -2713,30 +2713,29 @@ ngx_http_get_forwarded_addr(ngx_http_request_t *r, ngx_addr_t *addr, struct in6_addr *inaddr6; #endif +#if (NGX_SUPPRESS_WARN) + inaddr = NULL; +#if (NGX_HAVE_INET6) + inaddr6 = NULL; +#endif +#endif + family = addr->sockaddr->sa_family; - switch (family) { + if (family == AF_INET) { + inaddr = &((struct sockaddr_in *) addr->sockaddr)->sin_addr.s_addr; + } #if (NGX_HAVE_INET6) - case AF_INET6: + else if (family == AF_INET6) { inaddr6 = &((struct sockaddr_in6 *) addr->sockaddr)->sin6_addr; if (IN6_IS_ADDR_V4MAPPED(inaddr6)) { family = AF_INET; inaddr = (in_addr_t *) &inaddr6->s6_addr[12]; } - - break; -#endif - -#if (NGX_HAVE_UNIX_DOMAIN) - case AF_UNIX: - break; -#endif - - default: /* AF_INET */ - inaddr = &((struct sockaddr_in *) addr->sockaddr)->sin_addr.s_addr; } +#endif for (cidr = proxies->elts, i = 0; i < proxies->nelts; i++) { if (cidr[i].family != family) {