comparison src/event/ngx_event_pipe.c @ 634:0d6525917227 NGINX_1_0_7

nginx 1.0.7 *) Change: now if total size of all ranges is greater than source response size, then nginx disables ranges and returns just the source response. *) Feature: the "max_ranges" directive. *) Feature: the module ngx_http_mp4_module. *) Feature: the "worker_aio_requests" directive. *) Bugfix: if nginx was built --with-file-aio it could not be run on Linux kernel which did not support AIO. *) Bugfix: in Linux AIO error processing. Thanks to Hagai Avrahami. *) Bugfix: in Linux AIO combined with open_file_cache. *) Bugfix: open_file_cache did not update file info on retest if file was not atomically changed. *) Bugfix: reduced memory consumption for long-lived requests. *) Bugfix: in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives. *) Bugfix: nginx could not be built on MacOSX 10.7. *) Bugfix: in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives. *) Bugfix: request body might be processed incorrectly if client used pipelining. *) Bugfix: in the "request_body_in_single_buf" directive. *) Bugfix: in "proxy_set_body" and "proxy_pass_request_body" directives if SSL connection to backend was used. *) Bugfix: nginx hogged CPU if all servers in an upstream were marked as "down". *) Bugfix: a segmentation fault might occur during reconfiguration if ssl_session_cache was defined but not used in previous configuration. *) Bugfix: a segmentation fault might occur in a worker process if many backup servers were used in an upstream.
author Igor Sysoev <http://sysoev.ru>
date Fri, 30 Sep 2011 00:00:00 +0400
parents 86dad910eeb6
children ad25218fd14b
comparison
equal deleted inserted replaced
633:7c3c34755d2e 634:0d6525917227
631 } 631 }
632 } 632 }
633 633
634 rc = p->output_filter(p->output_ctx, out); 634 rc = p->output_filter(p->output_ctx, out);
635 635
636 ngx_chain_update_chains(&p->free, &p->busy, &out, p->tag);
637
636 if (rc == NGX_ERROR) { 638 if (rc == NGX_ERROR) {
637 p->downstream_error = 1; 639 p->downstream_error = 1;
638 return ngx_event_pipe_drain_chains(p); 640 return ngx_event_pipe_drain_chains(p);
639 } 641 }
640
641 ngx_chain_update_chains(&p->free, &p->busy, &out, p->tag);
642 642
643 for (cl = p->free; cl; cl = cl->next) { 643 for (cl = p->free; cl; cl = cl->next) {
644 644
645 if (cl->buf->temp_file) { 645 if (cl->buf->temp_file) {
646 if (p->cacheable || !p->cyclic_temp_file) { 646 if (p->cacheable || !p->cyclic_temp_file) {