Mercurial > hg > nginx-vendor-0-8
comparison src/http/ngx_http_upstream.c @ 276:c5c2b2883984 NGINX_0_5_8
nginx 0.5.8
*) Bugfix: a segmentation fault might occur if
"client_body_in_file_only on" was used and a request body was small.
*) Bugfix: a segmentation fault occurred if
"client_body_in_file_only on" and "proxy_pass_request_body off" or
"fastcgi_pass_request_body off" directives were used, and nginx
switched to a next upstream.
*) Bugfix: if the "proxy_buffering off" directive was used and a client
connection was non-active, then the connection was closed after send
timeout; bug appeared in 0.4.7.
*) Bugfix: if the "epoll" method was used and a client closed a
connection prematurely, then nginx closed the connection after a
send timeout only.
*) Bugfix: the "[alert] zero size buf" error when FastCGI server was
used.
*) Bugfixes in the "limit_zone" directive.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Fri, 19 Jan 2007 00:00:00 +0300 |
parents | 052a7b1d40e5 |
children | 3dbecd747fbb |
comparison
equal
deleted
inserted
replaced
275:1779577cb845 | 276:c5c2b2883984 |
---|---|
567 NGX_HTTP_INTERNAL_SERVER_ERROR); | 567 NGX_HTTP_INTERNAL_SERVER_ERROR); |
568 return; | 568 return; |
569 } | 569 } |
570 } | 570 } |
571 | 571 |
572 if (r->request_body && r->request_body->temp_file && r == r->main) { | 572 if (r->request_body |
573 | 573 && r->request_body->buf |
574 && r->request_body->temp_file | |
575 && r == r->main) | |
576 { | |
574 /* | 577 /* |
575 * the r->request_body->buf can be reused for one request only, | 578 * the r->request_body->buf can be reused for one request only, |
576 * the subrequests should allocate their own temporay bufs | 579 * the subrequests should allocate their own temporay bufs |
577 */ | 580 */ |
578 | 581 |
1698 ngx_http_upstream_finalize_request(r, u, 0); | 1701 ngx_http_upstream_finalize_request(r, u, 0); |
1699 return; | 1702 return; |
1700 } | 1703 } |
1701 } | 1704 } |
1702 | 1705 |
1703 if (downstream->write->active) { | 1706 if (downstream->write->active && !downstream->write->ready) { |
1704 ngx_add_timer(downstream->write, clcf->send_timeout); | 1707 ngx_add_timer(downstream->write, clcf->send_timeout); |
1705 | 1708 |
1706 } else if (downstream->write->timer_set) { | 1709 } else if (downstream->write->timer_set) { |
1707 ngx_del_timer(downstream->write); | 1710 ngx_del_timer(downstream->write); |
1708 } | 1711 } |
1710 if (ngx_handle_read_event(upstream->read, 0) == NGX_ERROR) { | 1713 if (ngx_handle_read_event(upstream->read, 0) == NGX_ERROR) { |
1711 ngx_http_upstream_finalize_request(r, u, 0); | 1714 ngx_http_upstream_finalize_request(r, u, 0); |
1712 return; | 1715 return; |
1713 } | 1716 } |
1714 | 1717 |
1715 if (upstream->read->active) { | 1718 if (upstream->read->active && !upstream->read->ready) { |
1716 ngx_add_timer(upstream->read, u->conf->read_timeout); | 1719 ngx_add_timer(upstream->read, u->conf->read_timeout); |
1717 | 1720 |
1718 } else if (upstream->read->timer_set) { | 1721 } else if (upstream->read->timer_set) { |
1719 ngx_del_timer(upstream->read); | 1722 ngx_del_timer(upstream->read); |
1720 } | 1723 } |