nginx-0.0.10-2004-09-14-23:39:54 import
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index f00ae65..be2e7fc 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1178,14 +1178,18 @@
     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 @@
     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];
     }
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 7345767..8b44acc 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -97,6 +97,10 @@
     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 @@
         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 @@
 
     r->http_state = NGX_HTTP_READING_REQUEST_STATE;
 
+#if (NGX_STAT_STUB)
+    (*ngx_stat_requests)++;
+#endif
+
     rev->event_handler(rev);
 }
 
@@ -867,6 +867,11 @@
                 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 @@
         }
 
         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 @@
         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 @@
         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 @@
     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);
 }
 
diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h
index 8055b5f..276330e 100644
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -146,8 +146,8 @@
     size_t            connection_type;
     ssize_t           keep_alive_n;
 
-    unsigned          msie;
-    unsigned          msie4;
+    unsigned          msie:1;
+    unsigned          msie4:1;
 } ngx_http_headers_in_t;