comparison src/http/ngx_http_header_filter_module.c @ 570:8246d8a2c2be NGINX_0_8_37

nginx 0.8.37 *) Feature: the ngx_http_split_clients_module. *) Feature: the "map" directive supports keys more than 255 characters. *) Bugfix: nginx ignored the "private" and "no-store" values in the "Cache-Control" backend response header line. *) Bugfix: a "stub" parameter of an "include" SSI directive was not used, if empty response has 200 status code. *) Bugfix: if a proxied or FastCGI request was internally redirected to another proxied or FastCGI location, then a segmentation fault might occur in a worker process; the bug had appeared in 0.8.33. Thanks to Yichun Zhang. *) Bugfix: IMAP connections may hang until they timed out while talking to Zimbra server. Thanks to Alan Batie.
author Igor Sysoev <http://sysoev.ru>
date Mon, 17 May 2010 00:00:00 +0400
parents be4f34123024
children bc110f60c0de
comparison
equal deleted inserted replaced
569:19b134bf21c0 570:8246d8a2c2be
216 { 216 {
217 /* 2XX */ 217 /* 2XX */
218 218
219 if (status == NGX_HTTP_NO_CONTENT) { 219 if (status == NGX_HTTP_NO_CONTENT) {
220 r->header_only = 1; 220 r->header_only = 1;
221 r->headers_out.content_type.len = 0; 221 ngx_str_null(&r->headers_out.content_type);
222 r->headers_out.content_type.data = NULL;
223 r->headers_out.last_modified_time = -1; 222 r->headers_out.last_modified_time = -1;
224 r->headers_out.last_modified = NULL; 223 r->headers_out.last_modified = NULL;
225 r->headers_out.content_length = NULL; 224 r->headers_out.content_length = NULL;
226 r->headers_out.content_length_n = -1; 225 r->headers_out.content_length_n = -1;
227 } 226 }
369 if (port) { 368 if (port) {
370 len += sizeof(":65535") - 1; 369 len += sizeof(":65535") - 1;
371 } 370 }
372 371
373 } else { 372 } else {
374 host.len = 0; 373 ngx_str_null(&host);
375 host.data = NULL;
376 port = 0; 374 port = 0;
377 } 375 }
378 376
379 if (r->chunked) { 377 if (r->chunked) {
380 len += sizeof("Transfer-Encoding: chunked" CRLF) - 1; 378 len += sizeof("Transfer-Encoding: chunked" CRLF) - 1;
537 535
538 /* update r->headers_out.location->value for possible logging */ 536 /* update r->headers_out.location->value for possible logging */
539 537
540 r->headers_out.location->value.len = b->last - p; 538 r->headers_out.location->value.len = b->last - p;
541 r->headers_out.location->value.data = p; 539 r->headers_out.location->value.data = p;
542 r->headers_out.location->key.len = sizeof("Location") - 1; 540 ngx_str_set(&r->headers_out.location->key, "Location");
543 r->headers_out.location->key.data = (u_char *) "Location";
544 541
545 *b->last++ = CR; *b->last++ = LF; 542 *b->last++ = CR; *b->last++ = LF;
546 } 543 }
547 544
548 if (r->chunked) { 545 if (r->chunked) {