comparison src/http/ngx_http_core_module.c @ 4042:d9b486dbf7e5 stable-1.0

Merge of r3982, r3984, r3985, r3991: Lingering closing related fixes: *) lingering_close "off|on|always" *) enable lingering close for pipelined requests *) do not send RST on normal lingering close read timeout, if reset_timedout_connection is on
author Igor Sysoev <igor@sysoev.ru>
date Mon, 29 Aug 2011 12:45:03 +0000
parents 0094c8636d5f
children fb1375e8b68c
comparison
equal deleted inserted replaced
4041:f87edc142316 4042:d9b486dbf7e5
125 { ngx_string("any"), NGX_HTTP_SATISFY_ANY }, 125 { ngx_string("any"), NGX_HTTP_SATISFY_ANY },
126 { ngx_null_string, 0 } 126 { ngx_null_string, 0 }
127 }; 127 };
128 128
129 129
130 static ngx_conf_enum_t ngx_http_core_lingering_close[] = {
131 { ngx_string("off"), NGX_HTTP_LINGERING_OFF },
132 { ngx_string("on"), NGX_HTTP_LINGERING_ON },
133 { ngx_string("always"), NGX_HTTP_LINGERING_ALWAYS },
134 { ngx_null_string, 0 }
135 };
136
137
130 static ngx_conf_enum_t ngx_http_core_if_modified_since[] = { 138 static ngx_conf_enum_t ngx_http_core_if_modified_since[] = {
131 { ngx_string("off"), NGX_HTTP_IMS_OFF }, 139 { ngx_string("off"), NGX_HTTP_IMS_OFF },
132 { ngx_string("exact"), NGX_HTTP_IMS_EXACT }, 140 { ngx_string("exact"), NGX_HTTP_IMS_EXACT },
133 { ngx_string("before"), NGX_HTTP_IMS_BEFORE }, 141 { ngx_string("before"), NGX_HTTP_IMS_BEFORE },
134 { ngx_null_string, 0 } 142 { ngx_null_string, 0 }
529 NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS, 537 NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS,
530 ngx_http_core_internal, 538 ngx_http_core_internal,
531 NGX_HTTP_LOC_CONF_OFFSET, 539 NGX_HTTP_LOC_CONF_OFFSET,
532 0, 540 0,
533 NULL }, 541 NULL },
542
543 { ngx_string("lingering_close"),
544 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
545 ngx_conf_set_enum_slot,
546 NGX_HTTP_LOC_CONF_OFFSET,
547 offsetof(ngx_http_core_loc_conf_t, lingering_close),
548 &ngx_http_core_lingering_close },
534 549
535 { ngx_string("lingering_time"), 550 { ngx_string("lingering_time"),
536 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 551 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
537 ngx_conf_set_msec_slot, 552 ngx_conf_set_msec_slot,
538 NGX_HTTP_LOC_CONF_OFFSET, 553 NGX_HTTP_LOC_CONF_OFFSET,
3257 clcf->limit_rate = NGX_CONF_UNSET_SIZE; 3272 clcf->limit_rate = NGX_CONF_UNSET_SIZE;
3258 clcf->limit_rate_after = NGX_CONF_UNSET_SIZE; 3273 clcf->limit_rate_after = NGX_CONF_UNSET_SIZE;
3259 clcf->keepalive_timeout = NGX_CONF_UNSET_MSEC; 3274 clcf->keepalive_timeout = NGX_CONF_UNSET_MSEC;
3260 clcf->keepalive_header = NGX_CONF_UNSET; 3275 clcf->keepalive_header = NGX_CONF_UNSET;
3261 clcf->keepalive_requests = NGX_CONF_UNSET_UINT; 3276 clcf->keepalive_requests = NGX_CONF_UNSET_UINT;
3277 clcf->lingering_close = NGX_CONF_UNSET_UINT;
3262 clcf->lingering_time = NGX_CONF_UNSET_MSEC; 3278 clcf->lingering_time = NGX_CONF_UNSET_MSEC;
3263 clcf->lingering_timeout = NGX_CONF_UNSET_MSEC; 3279 clcf->lingering_timeout = NGX_CONF_UNSET_MSEC;
3264 clcf->resolver_timeout = NGX_CONF_UNSET_MSEC; 3280 clcf->resolver_timeout = NGX_CONF_UNSET_MSEC;
3265 clcf->reset_timedout_connection = NGX_CONF_UNSET; 3281 clcf->reset_timedout_connection = NGX_CONF_UNSET;
3266 clcf->server_name_in_redirect = NGX_CONF_UNSET; 3282 clcf->server_name_in_redirect = NGX_CONF_UNSET;
3473 prev->keepalive_timeout, 75000); 3489 prev->keepalive_timeout, 75000);
3474 ngx_conf_merge_sec_value(conf->keepalive_header, 3490 ngx_conf_merge_sec_value(conf->keepalive_header,
3475 prev->keepalive_header, 0); 3491 prev->keepalive_header, 0);
3476 ngx_conf_merge_uint_value(conf->keepalive_requests, 3492 ngx_conf_merge_uint_value(conf->keepalive_requests,
3477 prev->keepalive_requests, 100); 3493 prev->keepalive_requests, 100);
3494 ngx_conf_merge_uint_value(conf->lingering_close,
3495 prev->lingering_close, NGX_HTTP_LINGERING_ON);
3478 ngx_conf_merge_msec_value(conf->lingering_time, 3496 ngx_conf_merge_msec_value(conf->lingering_time,
3479 prev->lingering_time, 30000); 3497 prev->lingering_time, 30000);
3480 ngx_conf_merge_msec_value(conf->lingering_timeout, 3498 ngx_conf_merge_msec_value(conf->lingering_timeout,
3481 prev->lingering_timeout, 5000); 3499 prev->lingering_timeout, 5000);
3482 ngx_conf_merge_msec_value(conf->resolver_timeout, 3500 ngx_conf_merge_msec_value(conf->resolver_timeout,