Mercurial > hg > nginx-mail
diff src/http/ngx_http_core_module.c @ 300:cba14c1e2a4b NGINX_0_5_20
nginx 0.5.20
*) Feature: the "sendfile_max_chunk" directive.
*) Feature: the "$http_...", "$sent_http_...", and "$upstream_http_..."
variables may be changed using the "set" directive.
*) Bugfix: a segmentation fault might occur in worker process if the
SSI command 'if expr="$var = /"' was used.
*) Bugfix: trailing boundary of multipart range response was
transferred incorrectly.
Thanks to Evan Miller.
*) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun
Studio.
Thanks to Andrei Nigmatulin.
*) Bugfix: the ngx_http_perl_module could not built by Solaris make.
Thanks to Andrei Nigmatulin.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 07 May 2007 00:00:00 +0400 |
parents | 30862655219e |
children | 9b7db0df50f0 |
line wrap: on
line diff
--- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -70,9 +70,13 @@ static char *ngx_http_core_internal(ngx_ void *conf); static char *ngx_http_core_lowat_check(ngx_conf_t *cf, void *post, void *data); +static char *ngx_http_core_pool_size(ngx_conf_t *cf, void *post, void *data); static ngx_conf_post_t ngx_http_core_lowat_post = - { ngx_http_core_lowat_check }; + { ngx_http_core_lowat_check }; + +static ngx_conf_post_handler_pt ngx_http_core_pool_size_p = + ngx_http_core_pool_size; static ngx_conf_deprecated_t ngx_conf_deprecated_optimize_host_names = { ngx_conf_deprecated, "optimize_host_names", "optimize_server_names" @@ -129,14 +133,14 @@ static ngx_command_t ngx_http_core_comm ngx_conf_set_size_slot, NGX_HTTP_SRV_CONF_OFFSET, offsetof(ngx_http_core_srv_conf_t, connection_pool_size), - NULL }, + &ngx_http_core_pool_size_p }, { ngx_string("request_pool_size"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1, ngx_conf_set_size_slot, NGX_HTTP_SRV_CONF_OFFSET, offsetof(ngx_http_core_srv_conf_t, request_pool_size), - NULL }, + &ngx_http_core_pool_size_p }, { ngx_string("client_header_timeout"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1, @@ -295,6 +299,13 @@ static ngx_command_t ngx_http_core_comm offsetof(ngx_http_core_loc_conf_t, sendfile), NULL }, + { ngx_string("sendfile_max_chunk"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_conf_set_size_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_core_loc_conf_t, sendfile_max_chunk), + NULL }, + { ngx_string("tcp_nopush"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, ngx_conf_set_flag_slot, @@ -2191,6 +2202,7 @@ ngx_http_core_create_loc_conf(ngx_conf_t lcf->internal = NGX_CONF_UNSET; lcf->client_body_in_file_only = NGX_CONF_UNSET; lcf->sendfile = NGX_CONF_UNSET; + lcf->sendfile_max_chunk = NGX_CONF_UNSET_SIZE; lcf->tcp_nopush = NGX_CONF_UNSET; lcf->tcp_nodelay = NGX_CONF_UNSET; lcf->send_timeout = NGX_CONF_UNSET_MSEC; @@ -2359,6 +2371,8 @@ ngx_http_core_merge_loc_conf(ngx_conf_t ngx_conf_merge_value(conf->client_body_in_file_only, prev->client_body_in_file_only, 0); ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0); + ngx_conf_merge_size_value(conf->sendfile_max_chunk, + prev->sendfile_max_chunk, 0); ngx_conf_merge_value(conf->tcp_nopush, prev->tcp_nopush, 0); ngx_conf_merge_value(conf->tcp_nodelay, prev->tcp_nodelay, 1); @@ -3042,3 +3056,19 @@ ngx_http_core_lowat_check(ngx_conf_t *cf return NGX_CONF_OK; } + + +static char * +ngx_http_core_pool_size(ngx_conf_t *cf, void *post, void *data) +{ + size_t *sp = data; + + if (*sp < NGX_MIN_POOL_SIZE) { + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, + "pool must be no less than %uz", NGX_MIN_POOL_SIZE); + + return NGX_CONF_ERROR; + } + + return NGX_CONF_OK; +}