Mercurial > hg > nginx
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 Fri Sep 24 16:12:19 2004 +0000 +++ b/src/http/ngx_http_core_module.c Sun Sep 26 19:01:48 2004 +0000 @@ -873,9 +873,9 @@ 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 @@ 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 @@ } 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 @@ 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 Fri Sep 24 16:12:19 2004 +0000 +++ b/src/http/ngx_http_header_filter.c Sun Sep 26 19:01:48 2004 +0000 @@ -246,7 +246,9 @@ * 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 @@ 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 Fri Sep 24 16:12:19 2004 +0000 +++ b/src/http/ngx_http_request.c Sun Sep 26 19:01:48 2004 +0000 @@ -1569,13 +1569,7 @@ 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 @@ 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 @@ 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 @@ } #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 @@ 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;