aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_linux_init.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-06-04 17:28:33 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-06-04 17:28:33 +0000
commit9cf783074fd7793ebb6859e7f62b054d79074efe (patch)
treeb5bd9726d10952b0fab24754e2af210a9b644682 /src/os/unix/ngx_linux_init.c
parent1c10462e88491d52a23e22fbc3ca0012591df095 (diff)
downloadnginx-9cf783074fd7793ebb6859e7f62b054d79074efe.tar.gz
nginx-9cf783074fd7793ebb6859e7f62b054d79074efe.zip
nginx-0.0.1-2003-06-04-21:28:33 import
Diffstat (limited to 'src/os/unix/ngx_linux_init.c')
-rw-r--r--src/os/unix/ngx_linux_init.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/os/unix/ngx_linux_init.c b/src/os/unix/ngx_linux_init.c
new file mode 100644
index 000000000..64bdce4eb
--- /dev/null
+++ b/src/os/unix/ngx_linux_init.c
@@ -0,0 +1,53 @@
+
+#include <ngx_config.h>
+#include <ngx_core.h>
+
+
+/* STUB */
+ssize_t ngx_unix_recv(ngx_connection_t *c, char *buf, size_t size);
+ngx_chain_t *ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in);
+int ngx_posix_init(ngx_log_t *log);
+
+
+char ngx_linux_kern_ostype[50];
+char ngx_linux_kern_osrelease[20];
+
+
+ngx_os_io_t ngx_os_io = {
+ ngx_unix_recv,
+ NULL,
+ NULL,
+ ngx_writev_chain,
+ NGX_HAVE_ZEROCOPY
+};
+
+
+int ngx_os_init(ngx_log_t *log)
+{
+ int name[2], len;
+
+ name[0] = CTL_KERN;
+ name[1] = KERN_OSTYPE;
+ len = sizeof(ngx_linux_kern_ostype);
+ if (sysctl(name, sizeof(name), ngx_linux_kern_ostype, &len, NULL, 0)
+ == -1) {
+ ngx_log_error(NGX_LOG_ALERT, log, errno, "sysctl(KERN_OSTYPE) failed");
+ return NGX_ERROR;
+ }
+
+ name[0] = CTL_KERN;
+ name[1] = KERN_OSRELEASE;
+ len = sizeof(ngx_linux_kern_osrelease);
+ if (sysctl(name, sizeof(name), ngx_linux_kern_osrelease, &len, NULL, 0)
+ == -1) {
+ ngx_log_error(NGX_LOG_ALERT, log, errno,
+ "sysctl(KERN_OSRELEASE) failed");
+ return NGX_ERROR;
+ }
+
+ ngx_log_error(NGX_LOG_INFO, log, 0, "OS: %s %s",
+ ngx_linux_kern_ostype, ngx_linux_kern_osrelease);
+
+
+ return ngx_posix_init(log);
+}