comparison src/http/modules/ngx_http_chunked_filter_module.c @ 579:be4f34123024 NGINX_0_8_35

nginx 0.8.35 *) Change: now the charset filter runs before the SSI filter. *) Feature: the "chunked_transfer_encoding" directive. *) Bugfix: an "&" character was not escaped when it was copied in arguments part in a rewrite rule. *) Bugfix: nginx might be terminated abnormally while a signal processing or if the directive "timer_resolution" was used on platforms which do not support kqueue or eventport notification methods. Thanks to George Xie and Maxim Dounin. *) Bugfix: if temporary files and permanent storage area resided at different file systems, then permanent file modification times were incorrect. Thanks to Maxim Dounin. *) Bugfix: ngx_http_memcached_module might issue the error message "memcached sent invalid trailer". Thanks to Maxim Dounin. *) Bugfix: nginx could not built zlib-1.2.4 library using the library sources. Thanks to Maxim Dounin. *) Bugfix: a segmentation fault occurred in a worker process, if there was large stderr output before FastCGI response; the bug had appeared in 0.8.34. Thanks to Maxim Dounin.
author Igor Sysoev <http://sysoev.ru>
date Mon, 29 Mar 2010 00:00:00 +0400
parents daf4847b43ff
children
comparison
equal deleted inserted replaced
577:dd7104f21940 579:be4f34123024
48 48
49 49
50 static ngx_int_t 50 static ngx_int_t
51 ngx_http_chunked_header_filter(ngx_http_request_t *r) 51 ngx_http_chunked_header_filter(ngx_http_request_t *r)
52 { 52 {
53 ngx_http_core_loc_conf_t *clcf;
54
53 if (r->headers_out.status == NGX_HTTP_NOT_MODIFIED 55 if (r->headers_out.status == NGX_HTTP_NOT_MODIFIED
54 || r->headers_out.status == NGX_HTTP_NO_CONTENT 56 || r->headers_out.status == NGX_HTTP_NO_CONTENT
55 || r != r->main 57 || r != r->main
56 || (r->method & NGX_HTTP_HEAD)) 58 || (r->method & NGX_HTTP_HEAD))
57 { 59 {
61 if (r->headers_out.content_length_n == -1) { 63 if (r->headers_out.content_length_n == -1) {
62 if (r->http_version < NGX_HTTP_VERSION_11) { 64 if (r->http_version < NGX_HTTP_VERSION_11) {
63 r->keepalive = 0; 65 r->keepalive = 0;
64 66
65 } else { 67 } else {
66 r->chunked = 1; 68 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
69
70 if (clcf->chunked_transfer_encoding) {
71 r->chunked = 1;
72
73 } else {
74 r->keepalive = 0;
75 }
67 } 76 }
68 } 77 }
69 78
70 return ngx_http_next_header_filter(r); 79 return ngx_http_next_header_filter(r);
71 } 80 }