Mercurial > hg > nginx
comparison src/http/ngx_http_core_module.c @ 5263:05ba5bce31e0
Core: extended ngx_sock_ntop() with socklen parameter.
On Linux, sockaddr length is required to process unix socket addresses properly
due to unnamed sockets (which don't have sun_path set at all) and abstract
namespace sockets.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Thu, 11 Jul 2013 16:07:25 +0400 |
parents | 7ecaa9e4bf1b |
children | 8e7db77e5d88 |
comparison
equal
deleted
inserted
replaced
5262:626f288fa5ed | 5263:05ba5bce31e0 |
---|---|
3031 #if (NGX_HAVE_SETFIB) | 3031 #if (NGX_HAVE_SETFIB) |
3032 lsopt.setfib = -1; | 3032 lsopt.setfib = -1; |
3033 #endif | 3033 #endif |
3034 lsopt.wildcard = 1; | 3034 lsopt.wildcard = 1; |
3035 | 3035 |
3036 (void) ngx_sock_ntop(&lsopt.u.sockaddr, lsopt.addr, | 3036 (void) ngx_sock_ntop(&lsopt.u.sockaddr, lsopt.socklen, lsopt.addr, |
3037 NGX_SOCKADDR_STRLEN, 1); | 3037 NGX_SOCKADDR_STRLEN, 1); |
3038 | 3038 |
3039 if (ngx_http_add_listen(cf, cscf, &lsopt) != NGX_OK) { | 3039 if (ngx_http_add_listen(cf, cscf, &lsopt) != NGX_OK) { |
3040 return NGX_CONF_ERROR; | 3040 return NGX_CONF_ERROR; |
3041 } | 3041 } |
3982 lsopt.wildcard = u.wildcard; | 3982 lsopt.wildcard = u.wildcard; |
3983 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY) | 3983 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY) |
3984 lsopt.ipv6only = 1; | 3984 lsopt.ipv6only = 1; |
3985 #endif | 3985 #endif |
3986 | 3986 |
3987 (void) ngx_sock_ntop(&lsopt.u.sockaddr, lsopt.addr, | 3987 (void) ngx_sock_ntop(&lsopt.u.sockaddr, lsopt.socklen, lsopt.addr, |
3988 NGX_SOCKADDR_STRLEN, 1); | 3988 NGX_SOCKADDR_STRLEN, 1); |
3989 | 3989 |
3990 for (n = 2; n < cf->args->nelts; n++) { | 3990 for (n = 2; n < cf->args->nelts; n++) { |
3991 | 3991 |
3992 if (ngx_strcmp(value[n].data, "default_server") == 0 | 3992 if (ngx_strcmp(value[n].data, "default_server") == 0 |