changeset 443:33aec431094b

nginx-0.1.0-2004-09-29-00:09:22 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 28 Sep 2004 20:09:22 +0000
parents 464aaa791e2b
children 42d11f017717
files auto/sources src/core/nginx.c src/core/ngx_log.c
diffstat 3 files changed, 52 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/auto/sources
+++ b/auto/sources
@@ -18,13 +18,15 @@ CORE_DEPS="src/core/nginx.h \
            src/core/ngx_file.h \
            src/core/ngx_crc.h \
            src/core/ngx_rbtree.h \
-           src/core/ngx_radix_tree.h \
            src/core/ngx_times.h \
            src/core/ngx_connection.h \
            src/core/ngx_cycle.h \
            src/core/ngx_conf_file.h \
            src/core/ngx_garbage_collector.h"
 
+#           src/core/ngx_radix_tree.h \
+#           src/core/ngx_radix_tree.c \
+
 CORE_SRCS="src/core/nginx.c \
            src/core/ngx_log.c \
            src/core/ngx_palloc.c \
@@ -37,7 +39,6 @@ CORE_SRCS="src/core/nginx.c \
            src/core/ngx_inet.c \
            src/core/ngx_file.c \
            src/core/ngx_rbtree.c \
-           src/core/ngx_radix_tree.c \
            src/core/ngx_times.c \
            src/core/ngx_connection.c \
            src/core/ngx_cycle.c \
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -95,6 +95,8 @@ ngx_module_t  ngx_core_module = {
 
 ngx_uint_t  ngx_max_module;
 
+ngx_uint_t  ngx_use_stderr;
+
 
 int main(int argc, char *const *argv)
 {
@@ -116,8 +118,9 @@ int main(int argc, char *const *argv)
     ngx_regex_init();
 #endif
 
+    ngx_pid = ngx_getpid();
+
     log = ngx_log_init_errlog();
-    ngx_pid = ngx_getpid();
 
 #if (NGX_OPENSSL)
     ngx_ssl_init(log);
@@ -133,10 +136,6 @@ int main(int argc, char *const *argv)
     ctx.argc = argc;
     ctx.argv = argv;
 
-    if (ngx_os_init(log) == NGX_ERROR) {
-        return 1;
-    }
-
     if (!(init_cycle.pool = ngx_create_pool(1024, log))) {
         return 1;
     }
@@ -145,6 +144,14 @@ int main(int argc, char *const *argv)
         return 1;
     }
 
+    if (ngx_use_stderr) {
+        log = ngx_log_init_errlog();
+    }
+
+    if (ngx_os_init(log) == NGX_ERROR) {
+        return 1;
+    }
+
     if (ngx_add_inherited_sockets(&init_cycle) == NGX_ERROR) {
         return 1;
     }
@@ -319,6 +326,10 @@ static ngx_int_t ngx_getopt(ngx_master_c
             ngx_test_config = 1;
             break;
 
+        case 's':
+            ngx_use_stderr = 1;
+            break;
+
         case 'c':
             if (ctx->argv[i + 1] == NULL) {
                 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
--- a/src/core/ngx_log.c
+++ b/src/core/ngx_log.c
@@ -259,6 +259,8 @@ void ngx_log_stderr(ngx_event_t *ev)
 
 ngx_log_t *ngx_log_init_errlog()
 {
+    ngx_fd_t  fd;
+
 #if (WIN32)
 
     ngx_stderr.fd = GetStdHandle(STD_ERROR_HANDLE);
@@ -283,7 +285,37 @@ ngx_log_t *ngx_log_init_errlog()
 #endif
 
     ngx_log.file = &ngx_stderr;
-    ngx_log.log_level = NGX_LOG_INFO;
+    ngx_log.log_level = NGX_LOG_ERR;
+
+#if 0
+    fd = ngx_open_file(NGX_ERROR_LOG_PATH, NGX_FILE_RDWR,
+                       NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND);
+
+    if (fd == NGX_INVALID_FILE) {
+        ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno,
+                      ngx_open_file_n " \"" NGX_ERROR_LOG_PATH "\" failed");
+        return NULL;
+    }
+
+#if (WIN32)
+
+    if (ngx_file_append_mode(fd) == NGX_ERROR) {
+        ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno,
+                      ngx_file_append_mode_n " \"" NGX_ERROR_LOG_PATH
+                      "\" failed");
+        return NULL;
+    }
+
+#else
+
+    if (dup2(fd, STDERR_FILENO) == NGX_ERROR) {
+        ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno,
+                      "dup2(STDERR) failed");
+        return NULL;
+    }
+
+#endif
+#endif
 
     return &ngx_log;
 }