From 40ffe171a7951d3019b3c8b488be87bfad405509 Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 22 Sep 2011 23:32:10 +0000 Subject: import of nginx 1.0.6 with a bundled libpcre needed for pcre to work properly. this is not yet linked to the build but we would like to work on it in tree to provide an apache replacement for base --- usr.sbin/nginx/src/os/unix/ngx_linux_init.c | 90 +++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 usr.sbin/nginx/src/os/unix/ngx_linux_init.c (limited to 'usr.sbin/nginx/src/os/unix/ngx_linux_init.c') diff --git a/usr.sbin/nginx/src/os/unix/ngx_linux_init.c b/usr.sbin/nginx/src/os/unix/ngx_linux_init.c new file mode 100644 index 00000000000..277be95371b --- /dev/null +++ b/usr.sbin/nginx/src/os/unix/ngx_linux_init.c @@ -0,0 +1,90 @@ + +/* + * Copyright (C) Igor Sysoev + */ + + +#include +#include + + +u_char ngx_linux_kern_ostype[50]; +u_char ngx_linux_kern_osrelease[50]; + +int ngx_linux_rtsig_max; + + +static ngx_os_io_t ngx_linux_io = { + ngx_unix_recv, + ngx_readv_chain, + ngx_udp_unix_recv, + ngx_unix_send, +#if (NGX_HAVE_SENDFILE) + ngx_linux_sendfile_chain, + NGX_IO_SENDFILE +#else + ngx_writev_chain, + 0 +#endif +}; + + +ngx_int_t +ngx_os_specific_init(ngx_log_t *log) +{ + struct utsname u; + + if (uname(&u) == -1) { + ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "uname() failed"); + return NGX_ERROR; + } + + (void) ngx_cpystrn(ngx_linux_kern_ostype, (u_char *) u.sysname, + sizeof(ngx_linux_kern_ostype)); + + (void) ngx_cpystrn(ngx_linux_kern_osrelease, (u_char *) u.release, + sizeof(ngx_linux_kern_osrelease)); + +#if (NGX_HAVE_RTSIG) + { + int name[2]; + size_t len; + ngx_err_t err; + + name[0] = CTL_KERN; + name[1] = KERN_RTSIGMAX; + len = sizeof(ngx_linux_rtsig_max); + + if (sysctl(name, 2, &ngx_linux_rtsig_max, &len, NULL, 0) == -1) { + err = ngx_errno; + + if (err != NGX_ENOTDIR && err != NGX_ENOSYS) { + ngx_log_error(NGX_LOG_ALERT, log, err, + "sysctl(KERN_RTSIGMAX) failed"); + + return NGX_ERROR; + } + + ngx_linux_rtsig_max = 0; + } + + } +#endif + + ngx_os_io = ngx_linux_io; + + return NGX_OK; +} + + +void +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); + +#if (NGX_HAVE_RTSIG) + ngx_log_error(NGX_LOG_NOTICE, log, 0, "sysctl(KERN_RTSIGMAX): %d", + ngx_linux_rtsig_max); +#endif +} -- cgit v1.2.3-59-g8ed1b