diff options
Diffstat (limited to 'src/os/unix')
-rw-r--r-- | src/os/unix/ngx_freebsd_config.h | 2 | ||||
-rw-r--r-- | src/os/unix/ngx_freebsd_init.c | 17 | ||||
-rw-r--r-- | src/os/unix/ngx_freebsd_sendfile_chain.c | 6 | ||||
-rw-r--r-- | src/os/unix/ngx_linux_config.h | 3 | ||||
-rw-r--r-- | src/os/unix/ngx_linux_init.c | 13 | ||||
-rw-r--r-- | src/os/unix/ngx_os.h | 5 | ||||
-rw-r--r-- | src/os/unix/ngx_posix_config.h | 3 | ||||
-rw-r--r-- | src/os/unix/ngx_posix_init.c | 240 | ||||
-rw-r--r-- | src/os/unix/ngx_process.c | 213 | ||||
-rw-r--r-- | src/os/unix/ngx_process.h | 2 | ||||
-rw-r--r-- | src/os/unix/ngx_solaris_config.h | 3 | ||||
-rw-r--r-- | src/os/unix/ngx_solaris_init.c | 20 |
12 files changed, 272 insertions, 255 deletions
diff --git a/src/os/unix/ngx_freebsd_config.h b/src/os/unix/ngx_freebsd_config.h index 7b34590a4..73deb9ccd 100644 --- a/src/os/unix/ngx_freebsd_config.h +++ b/src/os/unix/ngx_freebsd_config.h @@ -99,5 +99,7 @@ pid_t rfork_thread(int flags, void *stack, int (*func)(void *arg), void *arg); extern char *malloc_options; +#define NGX_HAVE_OS_SPECIFIC_INIT 1 + #endif /* _NGX_FREEBSD_CONFIG_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_freebsd_init.c b/src/os/unix/ngx_freebsd_init.c index ab002ae29..8610a5638 100644 --- a/src/os/unix/ngx_freebsd_init.c +++ b/src/os/unix/ngx_freebsd_init.c @@ -27,7 +27,7 @@ ngx_uint_t ngx_freebsd_sendfile_nbytes_bug; ngx_uint_t ngx_freebsd_use_tcp_nopush; -ngx_os_io_t ngx_os_io = { +static ngx_os_io_t ngx_freebsd_io = { ngx_unix_recv, ngx_readv_chain, ngx_unix_send, @@ -74,7 +74,8 @@ sysctl_t sysctls[] = { }; -void ngx_debug_init() +void +ngx_debug_init() { #if (NGX_DEBUG && !NGX_NO_DEBUG_MALLOC) @@ -88,7 +89,8 @@ void ngx_debug_init() } -ngx_int_t ngx_os_init(ngx_log_t *log) +ngx_int_t +ngx_os_specific_init(ngx_log_t *log) { int version, somaxconn; size_t size; @@ -223,12 +225,14 @@ ngx_int_t ngx_os_init(ngx_log_t *log) ngx_tcp_nodelay_and_tcp_nopush = 1; + ngx_os_io = ngx_freebsd_io; - return ngx_posix_init(log); + return NGX_OK; } -void ngx_os_status(ngx_log_t *log) +void +ngx_os_specific_status(ngx_log_t *log) { ngx_uint_t i; @@ -251,7 +255,4 @@ void ngx_os_status(ngx_log_t *log) sysctls[i].name, *sysctls[i].value); } } - - - ngx_posix_status(log); } diff --git a/src/os/unix/ngx_freebsd_sendfile_chain.c b/src/os/unix/ngx_freebsd_sendfile_chain.c index 7ae594897..721335ed2 100644 --- a/src/os/unix/ngx_freebsd_sendfile_chain.c +++ b/src/os/unix/ngx_freebsd_sendfile_chain.c @@ -56,7 +56,11 @@ ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) #if (NGX_HAVE_KQUEUE) - if ((ngx_event_flags & NGX_USE_KQUEUE_EVENT) && wev->pending_eof) { + if ((ngx_event_flags & NGX_USE_KQUEUE_EVENT) + && wev->pending_eof + /* FreeBSD 6.0 may erroneously report ETIMEDOUT */ + && wev->kq_errno != NGX_ETIMEDOUT) + { (void) ngx_connection_error(c, wev->kq_errno, "kevent() reported about an closed connection"); wev->error = 1; diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h index 7bd262a19..d3ef3258b 100644 --- a/src/os/unix/ngx_linux_config.h +++ b/src/os/unix/ngx_linux_config.h @@ -103,4 +103,7 @@ extern ssize_t sendfile(int s, int fd, int32_t *offset, size_t size); #endif +#define NGX_HAVE_OS_SPECIFIC_INIT 1 + + #endif /* _NGX_LINUX_CONFIG_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_linux_init.c b/src/os/unix/ngx_linux_init.c index 56d9f1523..8d2f7915e 100644 --- a/src/os/unix/ngx_linux_init.c +++ b/src/os/unix/ngx_linux_init.c @@ -14,7 +14,7 @@ char ngx_linux_kern_osrelease[20]; int ngx_linux_rtsig_max; -ngx_os_io_t ngx_os_io = { +static ngx_os_io_t ngx_linux_io = { ngx_unix_recv, ngx_readv_chain, ngx_unix_send, @@ -29,7 +29,7 @@ ngx_os_io_t ngx_os_io = { ngx_int_t -ngx_os_init(ngx_log_t *log) +ngx_os_specific_init(ngx_log_t *log) { int name[2]; size_t len; @@ -74,19 +74,18 @@ ngx_os_init(ngx_log_t *log) } - return ngx_posix_init(log); + ngx_os_io = ngx_linux_io; + + return NGX_OK; } void -ngx_os_status(ngx_log_t *log) +ngx_os_specific_status(ngx_log_t *log) { ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s", ngx_linux_kern_ostype, ngx_linux_kern_osrelease); ngx_log_error(NGX_LOG_NOTICE, log, 0, "sysctl(KERN_RTSIGMAX): %d", ngx_linux_rtsig_max); - - - ngx_posix_status(log); } diff --git a/src/os/unix/ngx_os.h b/src/os/unix/ngx_os.h index 97a29e69f..015d64012 100644 --- a/src/os/unix/ngx_os.h +++ b/src/os/unix/ngx_os.h @@ -34,10 +34,9 @@ typedef struct { void ngx_debug_init(void); ngx_int_t ngx_os_init(ngx_log_t *log); void ngx_os_status(ngx_log_t *log); +ngx_int_t ngx_os_specific_init(ngx_log_t *log); +void ngx_os_specific_status(ngx_log_t *log); ngx_int_t ngx_daemon(ngx_log_t *log); -ngx_int_t ngx_posix_init(ngx_log_t *log); -void ngx_posix_status(ngx_log_t *log); -ngx_int_t ngx_posix_post_conf_init(ngx_log_t *log); ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size); diff --git a/src/os/unix/ngx_posix_config.h b/src/os/unix/ngx_posix_config.h index 592ff7668..dc4341a94 100644 --- a/src/os/unix/ngx_posix_config.h +++ b/src/os/unix/ngx_posix_config.h @@ -102,7 +102,4 @@ #endif -#define NGX_POSIX_IO 1 - - #endif /* _NGX_POSIX_CONFIG_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c index d0de5d5f6..c8b0548ce 100644 --- a/src/os/unix/ngx_posix_init.c +++ b/src/os/unix/ngx_posix_init.c @@ -6,6 +6,7 @@ #include <ngx_config.h> #include <ngx_core.h> +#include <nginx.h> ngx_int_t ngx_ncpu; @@ -17,8 +18,6 @@ ngx_uint_t ngx_tcp_nodelay_and_tcp_nopush; struct rlimit rlmt; -#if (NGX_POSIX_IO) - ngx_os_io_t ngx_os_io = { ngx_unix_recv, ngx_readv_chain, @@ -28,75 +27,17 @@ ngx_os_io_t ngx_os_io = { }; -ngx_int_t ngx_os_init(ngx_log_t *log) -{ - return ngx_posix_init(log); -} - - -void ngx_os_status(ngx_log_t *log) +ngx_int_t +ngx_os_init(ngx_log_t *log) { - ngx_posix_status(log); -} - + ngx_log_error(NGX_LOG_NOTICE, log, 0, NGINX_VER); +#if (NGX_HAVE_OS_SPECIFIC_INIT) + if (ngx_os_specific_init(log) != NGX_OK) { + return NGX_ERROR; + } #endif - -void ngx_signal_handler(int signo); - - -typedef struct { - int signo; - char *signame; - void (*handler)(int signo); -} ngx_signal_t; - - -ngx_signal_t signals[] = { - { ngx_signal_value(NGX_RECONFIGURE_SIGNAL), - "SIG" ngx_value(NGX_RECONFIGURE_SIGNAL), - ngx_signal_handler }, - - { ngx_signal_value(NGX_REOPEN_SIGNAL), - "SIG" ngx_value(NGX_REOPEN_SIGNAL), - ngx_signal_handler }, - - { ngx_signal_value(NGX_NOACCEPT_SIGNAL), - "SIG" ngx_value(NGX_NOACCEPT_SIGNAL), - ngx_signal_handler }, - - { ngx_signal_value(NGX_TERMINATE_SIGNAL), - "SIG" ngx_value(NGX_TERMINATE_SIGNAL), - ngx_signal_handler }, - - { ngx_signal_value(NGX_SHUTDOWN_SIGNAL), - "SIG" ngx_value(NGX_SHUTDOWN_SIGNAL), - ngx_signal_handler }, - - { ngx_signal_value(NGX_CHANGEBIN_SIGNAL), - "SIG" ngx_value(NGX_CHANGEBIN_SIGNAL), - ngx_signal_handler }, - - { SIGALRM, "SIGALRM", ngx_signal_handler }, - - { SIGINT, "SIGINT", ngx_signal_handler }, - - { SIGIO, "SIGIO", ngx_signal_handler }, - - { SIGCHLD, "SIGCHLD", ngx_signal_handler }, - - { SIGPIPE, "SIGPIPE, SIG_IGN", SIG_IGN }, - - { 0, NULL, NULL } -}; - - -ngx_int_t ngx_posix_init(ngx_log_t *log) -{ - ngx_signal_t *sig; - struct sigaction sa; - ngx_init_setproctitle(log); ngx_pagesize = getpagesize(); @@ -105,23 +46,12 @@ ngx_int_t ngx_posix_init(ngx_log_t *log) ngx_ncpu = 1; } - for (sig = signals; sig->signo != 0; sig++) { - ngx_memzero(&sa, sizeof(struct sigaction)); - sa.sa_handler = sig->handler; - sigemptyset(&sa.sa_mask); - if (sigaction(sig->signo, &sa, NULL) == -1) { - ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, - "sigaction(%s) failed", sig->signame); - return NGX_ERROR; - } - } - if (getrlimit(RLIMIT_NOFILE, &rlmt) == -1) { ngx_log_error(NGX_LOG_ALERT, log, errno, "getrlimit(RLIMIT_NOFILE) failed)"); return NGX_ERROR; } - + ngx_max_sockets = rlmt.rlim_cur; #if (NGX_HAVE_INHERITED_NONBLOCK) @@ -134,157 +64,21 @@ ngx_int_t ngx_posix_init(ngx_log_t *log) } -void ngx_posix_status(ngx_log_t *log) +void +ngx_os_status(ngx_log_t *log) { +#if (NGX_HAVE_OS_SPECIFIC_INIT) + ngx_os_specific_status(log); +#endif + ngx_log_error(NGX_LOG_NOTICE, log, 0, "getrlimit(RLIMIT_NOFILE): %r:%r", rlmt.rlim_cur, rlmt.rlim_max); } -void ngx_signal_handler(int signo) -{ - char *action; - struct timeval tv; - ngx_int_t ignore; - ngx_err_t err; - ngx_signal_t *sig; - - ignore = 0; - - err = ngx_errno; - - for (sig = signals; sig->signo != 0; sig++) { - if (sig->signo == signo) { - break; - } - } - - ngx_gettimeofday(&tv); - ngx_time_update(tv.tv_sec); - - action = ""; - - switch (ngx_process) { - - case NGX_PROCESS_MASTER: - case NGX_PROCESS_SINGLE: - switch (signo) { - - case ngx_signal_value(NGX_SHUTDOWN_SIGNAL): - ngx_quit = 1; - action = ", shutting down"; - break; - - case ngx_signal_value(NGX_TERMINATE_SIGNAL): - case SIGINT: - ngx_terminate = 1; - action = ", exiting"; - break; - - case ngx_signal_value(NGX_NOACCEPT_SIGNAL): - ngx_noaccept = 1; - action = ", stop accepting connections"; - break; - - case ngx_signal_value(NGX_RECONFIGURE_SIGNAL): - ngx_reconfigure = 1; - action = ", reconfiguring"; - break; - - case ngx_signal_value(NGX_REOPEN_SIGNAL): - ngx_reopen = 1; - action = ", reopening logs"; - break; - - case ngx_signal_value(NGX_CHANGEBIN_SIGNAL): - if (getppid() > 1 || ngx_new_binary > 0) { - - /* - * Ignore the signal in the new binary if its parent is - * not the init process, i.e. the old binary's process - * is still running. Or ingore the signal in the old binary's - * process if the new binary's process is already running. - */ - - action = ", ignoring"; - ignore = 1; - break; - } - - ngx_change_binary = 1; - action = ", changing binary"; - break; - - case SIGALRM: - if (!ngx_terminate) { - ngx_timer = 1; - action = ", shutting down old worker processes"; - } - - break; - - case SIGIO: - ngx_sigio = 1; - break; - - case SIGCHLD: - ngx_reap = 1; - break; - } - - break; - - case NGX_PROCESS_WORKER: - switch (signo) { - - case ngx_signal_value(NGX_NOACCEPT_SIGNAL): - ngx_debug_quit = 1; - case ngx_signal_value(NGX_SHUTDOWN_SIGNAL): - ngx_quit = 1; - action = ", shutting down"; - break; - - case ngx_signal_value(NGX_TERMINATE_SIGNAL): - case SIGINT: - ngx_terminate = 1; - action = ", exiting"; - break; - - case ngx_signal_value(NGX_REOPEN_SIGNAL): - ngx_reopen = 1; - action = ", reopening logs"; - break; - - case ngx_signal_value(NGX_RECONFIGURE_SIGNAL): - case ngx_signal_value(NGX_CHANGEBIN_SIGNAL): - case SIGIO: - action = ", ignoring"; - break; - } - - break; - } - - ngx_log_error(NGX_LOG_NOTICE, ngx_cycle->log, 0, - "signal %d (%s) received%s", signo, sig->signame, action); - - if (ignore) { - ngx_log_error(NGX_LOG_CRIT, ngx_cycle->log, 0, - "the changing binary signal is ignored: " - "you should shutdown or terminate " - "before either old or new binary's process"); - } - - if (signo == SIGCHLD) { - ngx_process_get_status(); - } - - ngx_set_errno(err); -} - - -ngx_int_t ngx_posix_post_conf_init(ngx_log_t *log) +ngx_int_t +ngx_posix_post_conf_init(ngx_log_t *log) { ngx_fd_t pp[2]; diff --git a/src/os/unix/ngx_process.c b/src/os/unix/ngx_process.c index f9689c9af..eaf7ae4fd 100644 --- a/src/os/unix/ngx_process.c +++ b/src/os/unix/ngx_process.c @@ -10,7 +10,17 @@ #include <ngx_channel.h> +typedef struct { + int signo; + char *signame; + void (*handler)(int signo); +} ngx_signal_t; + + + static void ngx_execute_proc(ngx_cycle_t *cycle, void *data); +static void ngx_signal_handler(int signo); +static void ngx_process_get_status(void); int ngx_argc; @@ -23,6 +33,45 @@ ngx_int_t ngx_last_process; ngx_process_t ngx_processes[NGX_MAX_PROCESSES]; +ngx_signal_t signals[] = { + { ngx_signal_value(NGX_RECONFIGURE_SIGNAL), + "SIG" ngx_value(NGX_RECONFIGURE_SIGNAL), + ngx_signal_handler }, + + { ngx_signal_value(NGX_REOPEN_SIGNAL), + "SIG" ngx_value(NGX_REOPEN_SIGNAL), + ngx_signal_handler }, + + { ngx_signal_value(NGX_NOACCEPT_SIGNAL), + "SIG" ngx_value(NGX_NOACCEPT_SIGNAL), + ngx_signal_handler }, + + { ngx_signal_value(NGX_TERMINATE_SIGNAL), + "SIG" ngx_value(NGX_TERMINATE_SIGNAL), + ngx_signal_handler }, + + { ngx_signal_value(NGX_SHUTDOWN_SIGNAL), + "SIG" ngx_value(NGX_SHUTDOWN_SIGNAL), + ngx_signal_handler }, + + { ngx_signal_value(NGX_CHANGEBIN_SIGNAL), + "SIG" ngx_value(NGX_CHANGEBIN_SIGNAL), + ngx_signal_handler }, + + { SIGALRM, "SIGALRM", ngx_signal_handler }, + + { SIGINT, "SIGINT", ngx_signal_handler }, + + { SIGIO, "SIGIO", ngx_signal_handler }, + + { SIGCHLD, "SIGCHLD", ngx_signal_handler }, + + { SIGPIPE, "SIGPIPE, SIG_IGN", SIG_IGN }, + + { 0, NULL, NULL } +}; + + ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data, char *name, ngx_int_t respawn) @@ -208,7 +257,171 @@ ngx_execute_proc(ngx_cycle_t *cycle, void *data) } +ngx_int_t +ngx_init_signals(ngx_log_t *log) +{ + ngx_signal_t *sig; + struct sigaction sa; + + for (sig = signals; sig->signo != 0; sig++) { + ngx_memzero(&sa, sizeof(struct sigaction)); + sa.sa_handler = sig->handler; + sigemptyset(&sa.sa_mask); + if (sigaction(sig->signo, &sa, NULL) == -1) { + ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, + "sigaction(%s) failed", sig->signame); + return NGX_ERROR; + } + } + + return NGX_OK; +} + + void +ngx_signal_handler(int signo) +{ + char *action; + struct timeval tv; + ngx_int_t ignore; + ngx_err_t err; + ngx_signal_t *sig; + + ignore = 0; + + err = ngx_errno; + + for (sig = signals; sig->signo != 0; sig++) { + if (sig->signo == signo) { + break; + } + } + + ngx_gettimeofday(&tv); + ngx_time_update(tv.tv_sec); + + action = ""; + + switch (ngx_process) { + + case NGX_PROCESS_MASTER: + case NGX_PROCESS_SINGLE: + switch (signo) { + + case ngx_signal_value(NGX_SHUTDOWN_SIGNAL): + ngx_quit = 1; + action = ", shutting down"; + break; + + case ngx_signal_value(NGX_TERMINATE_SIGNAL): + case SIGINT: + ngx_terminate = 1; + action = ", exiting"; + break; + + case ngx_signal_value(NGX_NOACCEPT_SIGNAL): + ngx_noaccept = 1; + action = ", stop accepting connections"; + break; + + case ngx_signal_value(NGX_RECONFIGURE_SIGNAL): + ngx_reconfigure = 1; + action = ", reconfiguring"; + break; + + case ngx_signal_value(NGX_REOPEN_SIGNAL): + ngx_reopen = 1; + action = ", reopening logs"; + break; + + case ngx_signal_value(NGX_CHANGEBIN_SIGNAL): + if (getppid() > 1 || ngx_new_binary > 0) { + + /* + * Ignore the signal in the new binary if its parent is + * not the init process, i.e. the old binary's process + * is still running. Or ingore the signal in the old binary's + * process if the new binary's process is already running. + */ + + action = ", ignoring"; + ignore = 1; + break; + } + + ngx_change_binary = 1; + action = ", changing binary"; + break; + + case SIGALRM: + if (!ngx_terminate) { + ngx_timer = 1; + action = ", shutting down old worker processes"; + } + + break; + + case SIGIO: + ngx_sigio = 1; + break; + + case SIGCHLD: + ngx_reap = 1; + break; + } + + break; + + case NGX_PROCESS_WORKER: + switch (signo) { + + case ngx_signal_value(NGX_NOACCEPT_SIGNAL): + ngx_debug_quit = 1; + case ngx_signal_value(NGX_SHUTDOWN_SIGNAL): + ngx_quit = 1; + action = ", shutting down"; + break; + + case ngx_signal_value(NGX_TERMINATE_SIGNAL): + case SIGINT: + ngx_terminate = 1; + action = ", exiting"; + break; + + case ngx_signal_value(NGX_REOPEN_SIGNAL): + ngx_reopen = 1; + action = ", reopening logs"; + break; + + case ngx_signal_value(NGX_RECONFIGURE_SIGNAL): + case ngx_signal_value(NGX_CHANGEBIN_SIGNAL): + case SIGIO: + action = ", ignoring"; + break; + } + + break; + } + + ngx_log_error(NGX_LOG_NOTICE, ngx_cycle->log, 0, + "signal %d (%s) received%s", signo, sig->signame, action); + + if (ignore) { + ngx_log_error(NGX_LOG_CRIT, ngx_cycle->log, 0, + "the changing binary signal is ignored: " + "you should shutdown or terminate " + "before either old or new binary's process"); + } + + if (signo == SIGCHLD) { + ngx_process_get_status(); + } + + ngx_set_errno(err); +} + + +static void ngx_process_get_status(void) { int status; diff --git a/src/os/unix/ngx_process.h b/src/os/unix/ngx_process.h index 25bfa9604..3684b15ca 100644 --- a/src/os/unix/ngx_process.h +++ b/src/os/unix/ngx_process.h @@ -54,7 +54,7 @@ typedef struct { ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data, char *name, ngx_int_t respawn); ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx); -void ngx_process_get_status(void); +ngx_int_t ngx_init_signals(ngx_log_t *log); void ngx_debug_point(void); diff --git a/src/os/unix/ngx_solaris_config.h b/src/os/unix/ngx_solaris_config.h index 437e50654..84a4c8476 100644 --- a/src/os/unix/ngx_solaris_config.h +++ b/src/os/unix/ngx_solaris_config.h @@ -83,4 +83,7 @@ #endif +#define NGX_HAVE_OS_SPECIFIC_INIT 1 + + #endif /* _NGX_SOLARIS_CONFIG_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_solaris_init.c b/src/os/unix/ngx_solaris_init.c index 163adaae9..93d02250f 100644 --- a/src/os/unix/ngx_solaris_init.c +++ b/src/os/unix/ngx_solaris_init.c @@ -13,7 +13,7 @@ char ngx_solaris_release[10]; char ngx_solaris_version[50]; -ngx_os_io_t ngx_os_io = { +static ngx_os_io_t ngx_solaris_io = { ngx_unix_recv, ngx_readv_chain, ngx_unix_send, @@ -27,10 +27,11 @@ ngx_os_io_t ngx_os_io = { }; -ngx_int_t ngx_os_init(ngx_log_t *log) +ngx_int_t +ngx_os_specific_init(ngx_log_t *log) { if (sysinfo(SI_SYSNAME, ngx_solaris_sysname, sizeof(ngx_solaris_sysname)) - == -1) + == -1) { ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "sysinfo(SI_SYSNAME) failed"); @@ -38,7 +39,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log) } if (sysinfo(SI_RELEASE, ngx_solaris_release, sizeof(ngx_solaris_release)) - == -1) + == -1) { ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "sysinfo(SI_RELEASE) failed"); @@ -46,7 +47,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log) } if (sysinfo(SI_VERSION, ngx_solaris_version, sizeof(ngx_solaris_version)) - == -1) + == -1) { ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "sysinfo(SI_SYSNAME) failed"); @@ -54,11 +55,14 @@ ngx_int_t ngx_os_init(ngx_log_t *log) } - return ngx_posix_init(log); + ngx_os_io = ngx_solaris_io; + + return NGX_OK;; } -void ngx_os_status(ngx_log_t *log) +void +ngx_os_specific_status(ngx_log_t *log) { ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s", @@ -66,6 +70,4 @@ void ngx_os_status(ngx_log_t *log) ngx_log_error(NGX_LOG_NOTICE, log, 0, "version: %s", ngx_solaris_version); - - ngx_posix_status(log); } |