Mercurial > hg > nginx-quic
diff src/core/ngx_connection.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 | f941cf265cc5 |
children | b6ffe53f9c3d |
line wrap: on
line diff
--- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -41,7 +41,7 @@ ngx_create_listening(ngx_conf_t *cf, voi ls->sockaddr = sa; ls->socklen = socklen; - len = ngx_sock_ntop(sa, text, NGX_SOCKADDR_STRLEN, 1); + len = ngx_sock_ntop(sa, socklen, text, NGX_SOCKADDR_STRLEN, 1); ls->addr_text.len = len; switch (ls->sockaddr->sa_family) { @@ -152,7 +152,8 @@ ngx_set_inherited_sockets(ngx_cycle_t *c return NGX_ERROR; } - len = ngx_sock_ntop(ls[i].sockaddr, ls[i].addr_text.data, len, 1); + len = ngx_sock_ntop(ls[i].sockaddr, ls[i].socklen, + ls[i].addr_text.data, len, 1); if (len == 0) { return NGX_ERROR; } @@ -1068,7 +1069,7 @@ ngx_connection_local_sockaddr(ngx_connec return NGX_OK; } - s->len = ngx_sock_ntop(c->local_sockaddr, s->data, s->len, port); + s->len = ngx_sock_ntop(c->local_sockaddr, len, s->data, s->len, port); return NGX_OK; }