aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2010-11-25 10:15:04 +0000
committerIgor Sysoev <igor@sysoev.ru>2010-11-25 10:15:04 +0000
commit40747ad861d1645febf4c3a43f5f0c3489decbf0 (patch)
tree29bb394a5d424e27c93295cdbc02c9bd339f675d /src
parent601ca7cd6e8ba5fce8e87cfd122591a46b1136ff (diff)
downloadnginx-40747ad861d1645febf4c3a43f5f0c3489decbf0.tar.gz
nginx-40747ad861d1645febf4c3a43f5f0c3489decbf0.zip
Linux accept4() support
Diffstat (limited to 'src')
-rw-r--r--src/event/ngx_event_accept.c4
-rw-r--r--src/os/unix/ngx_posix_init.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index ed5762e18..67751faf7 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -46,7 +46,11 @@ ngx_event_accept(ngx_event_t *ev)
do {
socklen = NGX_SOCKADDRLEN;
+#if (NGX_HAVE_ACCEPT4)
+ s = accept4(lc->fd, (struct sockaddr *) sa, &socklen, SOCK_NONBLOCK);
+#else
s = accept(lc->fd, (struct sockaddr *) sa, &socklen);
+#endif
if (s == -1) {
err = ngx_socket_errno;
diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c
index f21614499..2357ab31f 100644
--- a/src/os/unix/ngx_posix_init.c
+++ b/src/os/unix/ngx_posix_init.c
@@ -60,7 +60,7 @@ ngx_os_init(ngx_log_t *log)
ngx_max_sockets = (ngx_int_t) rlmt.rlim_cur;
-#if (NGX_HAVE_INHERITED_NONBLOCK)
+#if (NGX_HAVE_INHERITED_NONBLOCK || NGX_HAVE_ACCEPT4)
ngx_inherited_nonblocking = 1;
#else
ngx_inherited_nonblocking = 0;