diff options
author | Igor Sysoev <igor@sysoev.ru> | 2017-09-14 18:16:22 +0300 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2017-09-14 18:16:22 +0300 |
commit | 4d5e39e8c1fdad50937fd440ca7a8df43a97e078 (patch) | |
tree | c35b4e2f26d65e38728d33deef920771767b6b5d /src/nxt_kqueue_engine.c | |
parent | f3280c5dc94e5415970fbbe8d1f03721b85f5553 (diff) | |
download | unit-4d5e39e8c1fdad50937fd440ca7a8df43a97e078.tar.gz unit-4d5e39e8c1fdad50937fd440ca7a8df43a97e078.tar.bz2 |
Fixed textual socket name lengths and Unix domain sockaddr length.
Diffstat (limited to 'src/nxt_kqueue_engine.c')
-rw-r--r-- | src/nxt_kqueue_engine.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/nxt_kqueue_engine.c b/src/nxt_kqueue_engine.c index 4582b314..c8585063 100644 --- a/src/nxt_kqueue_engine.c +++ b/src/nxt_kqueue_engine.c @@ -929,7 +929,7 @@ nxt_kqueue_listen_handler(nxt_task_t *task, void *obj, void *data) static void nxt_kqueue_conn_io_accept(nxt_task_t *task, void *obj, void *data) { - socklen_t len; + socklen_t socklen; nxt_conn_t *c; nxt_socket_t s; struct sockaddr *sa; @@ -944,17 +944,13 @@ nxt_kqueue_conn_io_accept(nxt_task_t *task, void *obj, void *data) lev->socket.kq_available--; lev->socket.read_ready = (lev->socket.kq_available != 0); - len = c->remote->socklen; - - if (len >= sizeof(struct sockaddr)) { - sa = &c->remote->u.sockaddr; - - } else { - sa = NULL; - len = 0; - } - - s = accept(lev->socket.fd, sa, &len); + sa = &c->remote->u.sockaddr; + socklen = c->remote->socklen; + /* + * The returned socklen is ignored here, + * see comment in nxt_conn_io_accept(). + */ + s = accept(lev->socket.fd, sa, &socklen); if (s != -1) { c->socket.fd = s; |