From 1c13c662f0ae8066d1d4849b4158d7459a4c7822 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Tue, 20 May 2003 15:37:55 +0000 Subject: nginx-0.0.1-2003-05-20-19:37:55 import --- src/os/unix/ngx_unix_init.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'src/os/unix/ngx_unix_init.c') diff --git a/src/os/unix/ngx_unix_init.c b/src/os/unix/ngx_unix_init.c index 2916c9e44..7b38bb18e 100644 --- a/src/os/unix/ngx_unix_init.c +++ b/src/os/unix/ngx_unix_init.c @@ -3,6 +3,9 @@ #include +int ngx_max_sockets; + + int ngx_unix_init(ngx_log_t *log) { struct sigaction sa; @@ -29,11 +32,32 @@ int ngx_unix_init(ngx_log_t *log) "getrlimit(RLIMIT_NOFILE): %qd:%qd", rlmt.rlim_cur, rlmt.rlim_max); + ngx_max_sockets = rlmt.rlim_cur; + + return NGX_OK; +} + + +int ngx_unix_post_conf_init(ngx_log_t *log) +{ + ngx_fd_t pp[2]; -#if 0 - RLIM_INFINITY - max_connections =< rlmt.rlim_cur; -#endif + if (pipe(pp) == -1) { + ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "pipe() failed"); + return NGX_ERROR; + } + + if (dup2(pp[1], STDERR_FILENO) == -1) { + ngx_log_error(NGX_LOG_EMERG, log, errno, "dup2(STDERR) failed"); + return NGX_ERROR; + } + + if (pp[1] > STDERR_FILENO) { + if (close(pp[1]) == -1) { + ngx_log_error(NGX_LOG_EMERG, log, errno, "close() failed"); + return NGX_ERROR; + } + } return NGX_OK; } -- cgit v1.2.3