Mercurial > hg > nginx
changeset 3786:8a8eb335313d
Linux accept4() support
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 25 Nov 2010 10:15:04 +0000 |
parents | 09bb9c0a06dd |
children | e294f37401c0 |
files | auto/os/features src/event/ngx_event_accept.c src/os/unix/ngx_posix_init.c |
diffstat | 3 files changed, 14 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/auto/os/features Wed Nov 24 13:41:37 2010 +0000 +++ b/auto/os/features Thu Nov 25 10:15:04 2010 +0000 @@ -305,6 +305,15 @@ . auto/feature +ngx_feature="accept4()" +ngx_feature_name="NGX_HAVE_ACCEPT4" +ngx_feature_run=no +ngx_feature_incs="#include <sys/socket.h>" +ngx_feature_path= +ngx_feature_libs= +ngx_feature_test="accept4(0, NULL, NULL, SOCK_NONBLOCK)" +. auto/feature + if [ $NGX_FILE_AIO = YES ]; then ngx_feature="kqueue AIO support"
--- a/src/event/ngx_event_accept.c Wed Nov 24 13:41:37 2010 +0000 +++ b/src/event/ngx_event_accept.c Thu Nov 25 10:15:04 2010 +0000 @@ -46,7 +46,11 @@ 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;
--- a/src/os/unix/ngx_posix_init.c Wed Nov 24 13:41:37 2010 +0000 +++ b/src/os/unix/ngx_posix_init.c Thu Nov 25 10:15:04 2010 +0000 @@ -60,7 +60,7 @@ 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;