[nginx] svn commit: r5103 - trunk/src/http
vbart at nginx.com
vbart at nginx.com
Thu Mar 7 17:41:40 UTC 2013
Author: vbart
Date: 2013-03-07 17:41:40 +0000 (Thu, 07 Mar 2013)
New Revision: 5103
URL: http://trac.nginx.org/nginx/changeset/5103/nginx
Log:
Use "client_header_timeout" for all requests in a connection.
Previously, only the first request in a connection used timeout
value from the "client_header_timeout" directive while reading
header. All subsequent requests used "keepalive_timeout" for
that.
It happened because timeout of the read event was set to the
value of "keepalive_timeout" in ngx_http_set_keepalive(), but
was not removed when the next request arrived.
Modified:
trunk/src/http/ngx_http_request.c
Modified: trunk/src/http/ngx_http_request.c
===================================================================
--- trunk/src/http/ngx_http_request.c 2013-03-07 17:21:50 UTC (rev 5102)
+++ trunk/src/http/ngx_http_request.c 2013-03-07 17:41:40 UTC (rev 5103)
@@ -2736,8 +2736,6 @@
c->data = hc;
- ngx_add_timer(rev, clcf->keepalive_timeout);
-
if (ngx_handle_read_event(rev, 0) != NGX_OK) {
ngx_http_close_connection(c);
return;
@@ -2753,6 +2751,10 @@
hc->pipeline = 1;
c->log->action = "reading client pipelined request line";
+ if (rev->timer_set) {
+ ngx_del_timer(rev);
+ }
+
rev->handler = ngx_http_init_request;
ngx_post_event(rev, &ngx_posted_events);
return;
@@ -2872,6 +2874,8 @@
c->idle = 1;
ngx_reusable_connection(c, 1);
+ ngx_add_timer(rev, clcf->keepalive_timeout);
+
if (rev->ready) {
ngx_post_event(rev, &ngx_posted_events);
}
@@ -2993,6 +2997,8 @@
c->idle = 0;
ngx_reusable_connection(c, 0);
+ ngx_del_timer(rev);
+
ngx_http_init_request(rev);
}
More information about the nginx-devel
mailing list