comparison src/http/ngx_http_request_body.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 1dcf6adad484
children ad25218fd14b
comparison
equal deleted inserted replaced
633:7c3c34755d2e 634:0d6525917227
141 141
142 /* the whole request body was pre-read */ 142 /* the whole request body was pre-read */
143 143
144 r->header_in->pos += (size_t) r->headers_in.content_length_n; 144 r->header_in->pos += (size_t) r->headers_in.content_length_n;
145 r->request_length += r->headers_in.content_length_n; 145 r->request_length += r->headers_in.content_length_n;
146 b->last = r->header_in->pos;
146 147
147 if (r->request_body_in_file_only) { 148 if (r->request_body_in_file_only) {
148 if (ngx_http_write_request_body(r, rb->bufs) != NGX_OK) { 149 if (ngx_http_write_request_body(r, rb->bufs) != NGX_OK) {
149 return NGX_HTTP_INTERNAL_SERVER_ERROR; 150 return NGX_HTTP_INTERNAL_SERVER_ERROR;
150 } 151 }
369 } else { 370 } else {
370 rb->bufs->buf = b; 371 rb->bufs->buf = b;
371 } 372 }
372 } 373 }
373 374
374 if (r->request_body_in_file_only && rb->bufs->next) { 375 if (rb->bufs->next
376 && (r->request_body_in_file_only || r->request_body_in_single_buf))
377 {
375 rb->bufs = rb->bufs->next; 378 rb->bufs = rb->bufs->next;
376 } 379 }
380
381 r->read_event_handler = ngx_http_block_reading;
377 382
378 rb->post_handler(r); 383 rb->post_handler(r);
379 384
380 return NGX_OK; 385 return NGX_OK;
381 } 386 }