changeset 426:3f88935a02e8

nginx-0.0.10-2004-09-14-23:39:54 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 14 Sep 2004 19:39:54 +0000
parents bd39260a1383
children 0d08eabe5c7b
files src/core/ngx_log.h src/core/ngx_palloc.c src/event/ngx_event.c src/event/ngx_event.h src/event/ngx_event_accept.c src/http/ngx_http_core_module.c src/http/ngx_http_request.c src/http/ngx_http_request.h src/imap/ngx_imap_proxy.c
diffstat 9 files changed, 108 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/ngx_log.h
+++ b/src/core/ngx_log.h
@@ -223,8 +223,8 @@ void ngx_assert_core(ngx_log_t *log, con
 #define ngx_log_debug4(level, log, err, fmt, arg1, arg2, arg3, arg4)
 #define ngx_log_debug5(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5)
 #define ngx_log_debug6(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5, arg6)
-#define ngx_log_debug7(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5, arg6,
-                       arg7)
+#define ngx_log_debug7(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5,    \
+                       arg6, arg7)
 
 #endif
 
--- a/src/core/ngx_palloc.c
+++ b/src/core/ngx_palloc.c
@@ -86,7 +86,7 @@ void *ngx_palloc(ngx_pool_t *pool, size_
             }
         }
 
-        /* alloc a new pool block */
+        /* allocate a new pool block */
 
         if (!(n = ngx_create_pool((size_t) (p->end - (char *) p), p->log))) {
             return NULL;
@@ -99,7 +99,7 @@ void *ngx_palloc(ngx_pool_t *pool, size_
         return m;
     }
 
-    /* alloc a large block */
+    /* allocate a large block */
 
     large = NULL;
     last = NULL;
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -64,6 +64,22 @@ ngx_msec_t                        ngx_ac
 ngx_int_t                         ngx_accept_disabled;
 
 
+#if (NGX_STAT_STUB)
+
+ngx_atomic_t   ngx_stat_accepted0;
+ngx_atomic_t  *ngx_stat_accepted = &ngx_stat_accepted0;
+ngx_atomic_t   ngx_stat_requests0;
+ngx_atomic_t  *ngx_stat_requests = &ngx_stat_requests0;
+ngx_atomic_t   ngx_stat_active0;
+ngx_atomic_t  *ngx_stat_active = &ngx_stat_active0;
+ngx_atomic_t   ngx_stat_reading0;
+ngx_atomic_t  *ngx_stat_reading = &ngx_stat_reading0;
+ngx_atomic_t   ngx_stat_writing0;
+ngx_atomic_t  *ngx_stat_writing = &ngx_stat_reading0;
+
+#endif
+
+
 
 static ngx_command_t  ngx_events_commands[] = {
 
@@ -187,6 +203,16 @@ static ngx_int_t ngx_event_module_init(n
     size = 128            /* ngx_accept_mutex */
            + 128;         /* ngx_connection_counter */
 
+#if (NGX_STAT_STUB)
+
+    size += 128           /* ngx_stat_accepted */
+           + 128          /* ngx_stat_requests */
+           + 128          /* ngx_stat_active */
+           + 128          /* ngx_stat_reading */
+           + 128;         /* ngx_stat_writing */
+
+#endif
+
     if (!(shared = ngx_create_shared_memory(size, cycle->log))) {
         return NGX_ERROR;
     }
@@ -194,6 +220,16 @@ static ngx_int_t ngx_event_module_init(n
     ngx_accept_mutex_ptr = (ngx_atomic_t *) shared;
     ngx_connection_counter = (ngx_atomic_t *) (shared + 128);
 
+#if (NGX_STAT_STUB)
+
+    ngx_stat_accepted = (ngx_atomic_t *) (shared + 2 * 128);
+    ngx_stat_requests = (ngx_atomic_t *) (shared + 3 * 128);
+    ngx_stat_active = (ngx_atomic_t *) (shared + 4 * 128);
+    ngx_stat_reading = (ngx_atomic_t *) (shared + 5 * 128);
+    ngx_stat_writing = (ngx_atomic_t *) (shared + 6 * 128);
+
+#endif
+
     ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
                    "counter: " PTR_FMT ", %d",
                    ngx_connection_counter, *ngx_connection_counter);
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -433,6 +433,18 @@ extern ngx_msec_t             ngx_accept
 extern ngx_int_t              ngx_accept_disabled;
 
 
+#if (NGX_STAT_STUB)
+
+extern ngx_atomic_t  *ngx_stat_accepted;
+extern ngx_atomic_t  *ngx_stat_requests;
+extern ngx_atomic_t  *ngx_stat_active;
+extern ngx_atomic_t  *ngx_stat_reading;
+extern ngx_atomic_t  *ngx_stat_writing;
+
+#endif
+
+
+
 #define ngx_accept_mutex_unlock()                                             \
            if (ngx_accept_mutex_held) {                                       \
                *ngx_accept_mutex = 0;                                         \
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -127,6 +127,10 @@ void ngx_event_accept(ngx_event_t *ev)
             return;
         }
 
+#if (NGX_STAT_STUB)
+        (*ngx_stat_accepted)++;
+        (*ngx_stat_active)++;
+#endif
 
         ngx_accept_disabled = (ngx_uint_t) s + NGX_ACCEPT_THRESHOLD
                                                             - ecf->connections;
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1178,14 +1178,18 @@ static char *ngx_set_type(ngx_conf_t *cf
     ngx_http_type_t  *type;
 
     if (lcf->types == NULL) {
-        ngx_test_null(lcf->types,
-                      ngx_palloc(cf->pool, NGX_HTTP_TYPES_HASH_PRIME
-                                                        * sizeof(ngx_array_t)),
-                      NGX_CONF_ERROR);
+        lcf->types = ngx_palloc(cf->pool, NGX_HTTP_TYPES_HASH_PRIME
+                                                        * sizeof(ngx_array_t));
+        if (lcf->types == NULL) {
+            return NGX_CONF_ERROR;
+        }
 
         for (i = 0; i < NGX_HTTP_TYPES_HASH_PRIME; i++) {
-            ngx_init_array(lcf->types[i], cf->pool, 5, sizeof(ngx_http_type_t),
-                           NGX_CONF_ERROR);
+            if (ngx_array_init(&lcf->types[i], cf->pool, 5,
+                                         sizeof(ngx_http_type_t)) == NGX_ERROR)
+            {
+                return NGX_CONF_ERROR;
+            }
         }
     }
 
@@ -1194,7 +1198,10 @@ static char *ngx_set_type(ngx_conf_t *cf
     for (i = 1; i < cf->args->nelts; i++) {
         ngx_http_types_hash_key(key, args[i]);
 
-        ngx_test_null(type, ngx_push_array(&lcf->types[key]), NGX_CONF_ERROR);
+        if (!(type = ngx_array_push(&lcf->types[key]))) {
+            return NGX_CONF_ERROR;
+        }
+
         type->exten = args[i];
         type->type = args[0];
     }
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -97,6 +97,10 @@ void ngx_http_init_connection(ngx_connec
     ngx_event_t         *rev;
     ngx_http_log_ctx_t  *ctx;
 
+#if (NGX_STAT_STUB)
+    (*ngx_stat_reading)++;
+#endif
+
     if (!(ctx = ngx_pcalloc(c->pool, sizeof(ngx_http_log_ctx_t)))) {
         ngx_http_close_connection(c);
         return;
@@ -313,22 +317,14 @@ static void ngx_http_init_request(ngx_ev
         return;
     }
 
-    r->cleanup.elts = ngx_palloc(r->pool, 5 * sizeof(ngx_http_cleanup_t));
-    if (r->cleanup.elts == NULL) {
+    if (ngx_array_init(&r->cleanup, r->pool, 5, sizeof(ngx_http_cleanup_t))
+                                                                  == NGX_ERROR)
+    { 
         ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
         ngx_http_close_connection(c);
         return;
     }
 
-    /*
-     * set by ngx_pcalloc():
-     *
-     * r->cleanup.nelts = 0;
-     */
-    r->cleanup.nalloc = 5;
-    r->cleanup.size = sizeof(ngx_http_cleanup_t);
-    r->cleanup.pool = r->pool;
-
 
     if (ngx_list_init(&r->headers_out.headers, r->pool, 20,
                                          sizeof(ngx_table_elt_t)) == NGX_ERROR)
@@ -360,6 +356,10 @@ static void ngx_http_init_request(ngx_ev
 
     r->http_state = NGX_HTTP_READING_REQUEST_STATE;
 
+#if (NGX_STAT_STUB)
+    (*ngx_stat_requests)++;
+#endif
+
     rev->event_handler(rev);
 }
 
@@ -867,6 +867,11 @@ static void ngx_http_process_request_hea
                 ngx_del_timer(rev);
             }
 
+#if (NGX_STAT_STUB)
+            (*ngx_stat_reading)--;
+            (*ngx_stat_writing)++;
+#endif
+
             rev->event_handler = ngx_http_block_read;
             ngx_http_handler(r);
             return;
@@ -1143,6 +1148,11 @@ void ngx_http_finalize_request(ngx_http_
         }
 
         if (rc == NGX_HTTP_CLIENT_CLOSED_REQUEST || r->closed) {
+
+#if (NGX_STAT_STUB)
+            (*ngx_stat_writing)--;
+#endif
+
             ngx_http_close_request(r, 0);
             ngx_http_close_connection(r->connection);
             return;
@@ -1153,6 +1163,11 @@ void ngx_http_finalize_request(ngx_http_
         return;
 
     } else if (rc == NGX_ERROR) {
+
+#if (NGX_STAT_STUB)
+        (*ngx_stat_writing)--;
+#endif
+
         ngx_http_close_request(r, 0);
         ngx_http_close_connection(r->connection);
         return;
@@ -1162,6 +1177,10 @@ void ngx_http_finalize_request(ngx_http_
         return;
     }
 
+#if (NGX_STAT_STUB)
+    (*ngx_stat_writing)--;
+#endif
+
     if (r->connection->read->timer_set) {
         ngx_del_timer(r->connection->read);
     }
@@ -1887,6 +1906,10 @@ void ngx_http_close_connection(ngx_conne
     ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
                    "close http connection: %d", c->fd);
 
+#if (NGX_STAT_STUB)
+    (*ngx_stat_active)--;
+#endif
+
     ngx_close_connection(c);
 }
 
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -146,8 +146,8 @@ typedef struct {
     size_t            connection_type;
     ssize_t           keep_alive_n;
 
-    unsigned          msie;
-    unsigned          msie4;
+    unsigned          msie:1;
+    unsigned          msie4:1;
 } ngx_http_headers_in_t;
 
 
--- a/src/imap/ngx_imap_proxy.c
+++ b/src/imap/ngx_imap_proxy.c
@@ -44,12 +44,12 @@ void ngx_imap_proxy_init(ngx_imap_sessio
 #if 0
     peers->peers[0].addr = inet_addr("81.19.69.70");
     peers->peers[0].addr_port_text.len = sizeof("81.19.69.70:110") - 1;
-    peers->peers[0].addr_port_text.data = "81.19.69.70:110";
+    peers->peers[0].addr_port_text.data = (u_char *) "81.19.69.70:110";
     peers->peers[0].port = htons(110);
 #else
     peers->peers[0].addr = inet_addr("81.19.64.101");
     peers->peers[0].addr_port_text.len = sizeof("81.19.64.101:110") - 1;
-    peers->peers[0].addr_port_text.data = "81.19.64.101:110";
+    peers->peers[0].addr_port_text.data = (u_char *) "81.19.64.101:110";
     peers->peers[0].port = htons(110);
 #endif