changeset 439:4fe393d82f44

nginx-0.0.12-2004-09-26-23:01:48 import
author Igor Sysoev <igor@sysoev.ru>
date Sun, 26 Sep 2004 19:01:48 +0000
parents e56ab5ac8c65
children f390d1775430
files src/http/ngx_http_core_module.c src/http/ngx_http_header_filter.c src/http/ngx_http_request.c
diffstat 3 files changed, 24 insertions(+), 51 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -873,9 +873,9 @@ static ngx_int_t ngx_http_core_init_proc
 
     ngx_http_handler_pt         *h;
 
-    if (!(h = ngx_array_push(&cmcf->phases[NGX_HTTP_TRANSLATE_PHASE].handlers)))
-        return NGX_ERROR;
-    }
+    ngx_test_null(h, ngx_push_array(
+                             &cmcf->phases[NGX_HTTP_TRANSLATE_PHASE].handlers),
+                  NGX_ERROR);
     *h = ngx_http_delay_handler;
 #endif
 
@@ -904,26 +904,24 @@ static char *ngx_server_block(ngx_conf_t
     ngx_http_core_main_conf_t   *cmcf;
     ngx_http_core_srv_conf_t    *cscf, **cscfp;
 
-    if (!(ctx = ngx_pcalloc(cf->pool, sizeof(ngx_http_conf_ctx_t)))) {
-        return NGX_CONF_ERROR;
-    }
+    ngx_test_null(ctx,
+                  ngx_pcalloc(cf->pool, sizeof(ngx_http_conf_ctx_t)),
+                  NGX_CONF_ERROR);
 
     http_ctx = cf->ctx;
     ctx->main_conf = http_ctx->main_conf;
 
     /* the server{}'s srv_conf */
 
-    ctx->srv_conf = ngx_pcalloc(cf->pool, sizeof(void *) * ngx_http_max_module);
-    if (ctx->srv_conf == NULL) {
-        return NGX_CONF_ERROR;
-    }
+    ngx_test_null(ctx->srv_conf,
+                  ngx_pcalloc(cf->pool, sizeof(void *) * ngx_http_max_module),
+                  NGX_CONF_ERROR);
 
     /* the server{}'s loc_conf */
 
-    ctx->loc_conf = ngx_pcalloc(cf->pool, sizeof(void *) * ngx_http_max_module);
-    if (ctx->loc_conf == NULL) {
-        return NGX_CONF_ERROR;
-    }
+    ngx_test_null(ctx->loc_conf,
+                  ngx_pcalloc(cf->pool, sizeof(void *) * ngx_http_max_module),
+                  NGX_CONF_ERROR);
 
     for (m = 0; ngx_modules[m]; m++) {
         if (ngx_modules[m]->type != NGX_HTTP_MODULE) {
@@ -1327,11 +1325,11 @@ static char *ngx_http_core_merge_srv_con
     }
 
     ngx_conf_merge_size_value(conf->connection_pool_size,
-                              prev->connection_pool_size, 256);
+                              prev->connection_pool_size, 2048);
     ngx_conf_merge_msec_value(conf->post_accept_timeout,
-                              prev->post_accept_timeout, 60000);
+                              prev->post_accept_timeout, 30000);
     ngx_conf_merge_size_value(conf->request_pool_size,
-                              prev->request_pool_size, (size_t) ngx_pagesize);
+                              prev->request_pool_size, 16384);
     ngx_conf_merge_msec_value(conf->client_header_timeout,
                               prev->client_header_timeout, 60000);
     ngx_conf_merge_size_value(conf->client_header_buffer_size,
@@ -1464,8 +1462,7 @@ static char *ngx_http_core_merge_loc_con
     ngx_conf_merge_size_value(conf->client_max_body_size,
                               prev->client_max_body_size, 10 * 1024 * 1024);
     ngx_conf_merge_size_value(conf->client_body_buffer_size,
-                              prev->client_body_buffer_size,
-                              (size_t) 4 * ngx_pagesize);
+                              prev->client_body_buffer_size, 8192);
     ngx_conf_merge_msec_value(conf->client_body_timeout,
                               prev->client_body_timeout, 60000);
     ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0);
--- a/src/http/ngx_http_header_filter.c
+++ b/src/http/ngx_http_header_filter.c
@@ -246,7 +246,9 @@ static ngx_int_t ngx_http_header_filter(
          * Konqueror keeps the connection alive for about N seconds.
          */
 
-        if (clcf->keepalive_header) {
+        if (clcf->keepalive_header
+            && (r->headers_in.gecko || r->headers_in.konqueror))
+        {
             len += sizeof("Keep-Alive: timeout=") - 1 + TIME_T_LEN + 2;
         }
 
@@ -378,7 +380,9 @@ static ngx_int_t ngx_http_header_filter(
         b->last = ngx_cpymem(b->last, "Connection: keep-alive" CRLF,
                              sizeof("Connection: keep-alive" CRLF) - 1);
 
-        if (clcf->keepalive_header) {
+        if (clcf->keepalive_header
+            && (r->headers_in.gecko || r->headers_in.konqueror))
+        {
             b->last += ngx_snprintf((char *) b->last,
                             sizeof("Keep-Alive: timeout=") + TIME_T_LEN + 2,
                             "Keep-Alive: timeout=" TIME_T_FMT CRLF,
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1569,13 +1569,7 @@ static void ngx_http_set_keepalive(ngx_h
 
         if (b != c->buffer) {
 
-            /*
-             * If the large header buffers were allocated while the previous
-             * request processing then we do not use c->buffer for
-             * the pipelined request (see ngx_http_init_request()).
-             * 
-             * Now we would move the large header buffers to the free list.
-             */
+            /* move the large header buffers to the free list */
 
             cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module);
 
@@ -1627,15 +1621,6 @@ static void ngx_http_set_keepalive(ngx_h
 
     hc->pipeline = 0;
 
-
-    /*
-     * To keep a memory footprint as small as possible for an idle
-     * keepalive connection we try to free the ngx_http_request_t and
-     * c->buffer's memory if they were allocated outside the c->pool.
-     * The large header buffers are always allocated outside the c->pool and
-     * are freed too.
-     */
-
     if (ngx_pfree(c->pool, r) == NGX_OK) {
         hc->request = NULL;
     }
@@ -1643,12 +1628,6 @@ static void ngx_http_set_keepalive(ngx_h
     b = c->buffer;
 
     if (ngx_pfree(c->pool, b->start) == NGX_OK) {
-
-        /*
-         * the special note for ngx_http_keepalive_handler() that
-         * c->buffer's memory was freed
-         */
-
         b->pos = NULL;
 
     } else {
@@ -1711,7 +1690,7 @@ static void ngx_http_set_keepalive(ngx_h
     }
 
 #if 0
-    /* if ngx_http_request_t was freed then we need some other place */
+    /* if "keepalive_buffers off" then we need some other place */
     r->http_state = NGX_HTTP_KEEPALIVE_STATE;
 #endif
 
@@ -1760,13 +1739,6 @@ static void ngx_http_keepalive_handler(n
     size = b->end - b->start;
 
     if (b->pos == NULL) {
-
-        /*
-         * The c->buffer's memory was freed by ngx_http_set_keepalive().
-         * However, the c->buffer->start and c->buffer->end were not changed
-         * to keep the buffer size.
-         */
-
         if (!(b->pos = ngx_palloc(c->pool, size))) {
             ngx_http_close_connection(c);
             return;