summaryrefslogtreecommitdiffhomepage
path: root/src/event
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2013-07-11 16:07:25 +0400
committerVladimir Homutov <vl@nginx.com>2013-07-11 16:07:25 +0400
commitaf18946d769296d9efead825a0d1aa6a1a41fe74 (patch)
tree6b34cebcacea394e0126bcff647a3e73ab25c36d /src/event
parent050f74b751c10eeb2491ec6509d0508a7e690209 (diff)
downloadnginx-af18946d769296d9efead825a0d1aa6a1a41fe74.tar.gz
nginx-af18946d769296d9efead825a0d1aa6a1a41fe74.tar.bz2
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.
Diffstat (limited to 'src/event')
-rw-r--r--src/event/ngx_event_accept.c3
-rw-r--r--src/event/ngx_event_acceptex.c3
-rw-r--r--src/event/ngx_event_openssl_stapling.c3
3 files changed, 6 insertions, 3 deletions
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index 6087d60da..e3f828da8 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -275,7 +275,8 @@ ngx_event_accept(ngx_event_t *ev)
return;
}
- c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->addr_text.data,
+ c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->socklen,
+ c->addr_text.data,
ls->addr_text_max_len, 0);
if (c->addr_text.len == 0) {
ngx_close_accepted_connection(c);
diff --git a/src/event/ngx_event_acceptex.c b/src/event/ngx_event_acceptex.c
index 77fac6d3f..b7c4134b1 100644
--- a/src/event/ngx_event_acceptex.c
+++ b/src/event/ngx_event_acceptex.c
@@ -68,7 +68,8 @@ ngx_event_acceptex(ngx_event_t *rev)
return;
}
- c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->addr_text.data,
+ c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->socklen,
+ c->addr_text.data,
ls->addr_text_max_len, 0);
if (c->addr_text.len == 0) {
/* TODO: close socket */
diff --git a/src/event/ngx_event_openssl_stapling.c b/src/event/ngx_event_openssl_stapling.c
index 23097f33d..77076141c 100644
--- a/src/event/ngx_event_openssl_stapling.c
+++ b/src/event/ngx_event_openssl_stapling.c
@@ -878,7 +878,8 @@ ngx_ssl_ocsp_resolve_handler(ngx_resolver_ctx_t *resolve)
goto failed;
}
- len = ngx_sock_ntop((struct sockaddr *) sin, p, len, 1);
+ len = ngx_sock_ntop((struct sockaddr *) sin, sizeof(struct sockaddr_in),
+ p, len, 1);
ctx->addrs[i].name.len = len;
ctx->addrs[i].name.data = p;