Mercurial > hg > nginx-vendor-current
comparison src/http/ngx_http_core_module.h @ 680:597573166f34 NGINX_1_3_3
nginx 1.3.3
*) Feature: entity tags support and the "etag" directive.
*) Bugfix: trailing dot in a source value was not ignored if the "map"
directive was used with the "hostnames" parameter.
*) Bugfix: incorrect location might be used to process a request if a
URI was changed via a "rewrite" directive before an internal redirect
to a named location.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 10 Jul 2012 00:00:00 +0400 |
parents | 4dcaf40cc702 |
children | 5cb5db9975ba |
comparison
equal
deleted
inserted
replaced
679:cad34cec7d3b | 680:597573166f34 |
---|---|
390 ngx_flag_t log_not_found; /* log_not_found */ | 390 ngx_flag_t log_not_found; /* log_not_found */ |
391 ngx_flag_t log_subrequest; /* log_subrequest */ | 391 ngx_flag_t log_subrequest; /* log_subrequest */ |
392 ngx_flag_t recursive_error_pages; /* recursive_error_pages */ | 392 ngx_flag_t recursive_error_pages; /* recursive_error_pages */ |
393 ngx_flag_t server_tokens; /* server_tokens */ | 393 ngx_flag_t server_tokens; /* server_tokens */ |
394 ngx_flag_t chunked_transfer_encoding; /* chunked_transfer_encoding */ | 394 ngx_flag_t chunked_transfer_encoding; /* chunked_transfer_encoding */ |
395 ngx_flag_t etag; /* etag */ | |
395 | 396 |
396 #if (NGX_HTTP_GZIP) | 397 #if (NGX_HTTP_GZIP) |
397 ngx_flag_t gzip_vary; /* gzip_vary */ | 398 ngx_flag_t gzip_vary; /* gzip_vary */ |
398 | 399 |
399 ngx_uint_t gzip_http_version; /* gzip_http_version */ | 400 ngx_uint_t gzip_http_version; /* gzip_http_version */ |
478 | 479 |
479 | 480 |
480 void *ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash); | 481 void *ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash); |
481 ngx_int_t ngx_http_set_content_type(ngx_http_request_t *r); | 482 ngx_int_t ngx_http_set_content_type(ngx_http_request_t *r); |
482 void ngx_http_set_exten(ngx_http_request_t *r); | 483 void ngx_http_set_exten(ngx_http_request_t *r); |
484 ngx_int_t ngx_http_set_etag(ngx_http_request_t *r); | |
483 ngx_int_t ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status, | 485 ngx_int_t ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status, |
484 ngx_str_t *ct, ngx_http_complex_value_t *cv); | 486 ngx_str_t *ct, ngx_http_complex_value_t *cv); |
485 u_char *ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *name, | 487 u_char *ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *name, |
486 size_t *root_length, size_t reserved); | 488 size_t *root_length, size_t reserved); |
487 ngx_int_t ngx_http_auth_basic_user(ngx_http_request_t *r); | 489 ngx_int_t ngx_http_auth_basic_user(ngx_http_request_t *r); |
553 if (r->headers_out.location) { \ | 555 if (r->headers_out.location) { \ |
554 r->headers_out.location->hash = 0; \ | 556 r->headers_out.location->hash = 0; \ |
555 r->headers_out.location = NULL; \ | 557 r->headers_out.location = NULL; \ |
556 } | 558 } |
557 | 559 |
560 #define ngx_http_clear_etag(r) \ | |
561 \ | |
562 if (r->headers_out.etag) { \ | |
563 r->headers_out.etag->hash = 0; \ | |
564 r->headers_out.etag = NULL; \ | |
565 } | |
566 | |
558 | 567 |
559 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */ | 568 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */ |