Welcome! Log In Create A New Profile

Advanced

[nginx] svn commit: r4750 - trunk/src/http

Anonymous User
July 09, 2012 10:54AM
Author: mdounin
Date: 2012-07-09 14:53:42 +0000 (Mon, 09 Jul 2012)
New Revision: 4750
URL: http://trac.nginx.org/nginx/changeset/4750/nginx

Log:
Entity tags: the "etag" directive.

It allows to disable generation of nginx's own entity tags, while
still handling ETags in cache properly. This may be useful e.g.
if one want to serve static files from servers with different ETag
generation algorithms.


Modified:
trunk/src/http/ngx_http_core_module.c
trunk/src/http/ngx_http_core_module.h

Modified: trunk/src/http/ngx_http_core_module.c
===================================================================
--- trunk/src/http/ngx_http_core_module.c 2012-07-09 00:13:06 UTC (rev 4749)
+++ trunk/src/http/ngx_http_core_module.c 2012-07-09 14:53:42 UTC (rev 4750)
@@ -650,6 +650,13 @@
offsetof(ngx_http_core_loc_conf_t, chunked_transfer_encoding),
NULL },

+ { ngx_string("etag"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_flag_slot,
+ NGX_HTTP_LOC_CONF_OFFSET,
+ offsetof(ngx_http_core_loc_conf_t, etag),
+ NULL },
+
{ ngx_string("error_page"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
|NGX_CONF_2MORE,
@@ -1811,7 +1818,14 @@
ngx_int_t
ngx_http_set_etag(ngx_http_request_t *r)
{
- ngx_table_elt_t *etag;
+ ngx_table_elt_t *etag;
+ ngx_http_core_loc_conf_t *clcf;
+
+ clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
+
+ if (!clcf->etag) {
+ return NGX_OK;
+ }

etag = ngx_list_push(&r->headers_out.headers);
if (etag == NULL) {
@@ -3539,6 +3553,7 @@
clcf->recursive_error_pages = NGX_CONF_UNSET;
clcf->server_tokens = NGX_CONF_UNSET;
clcf->chunked_transfer_encoding = NGX_CONF_UNSET;
+ clcf->etag = NGX_CONF_UNSET;
clcf->types_hash_max_size = NGX_CONF_UNSET_UINT;
clcf->types_hash_bucket_size = NGX_CONF_UNSET_UINT;

@@ -3800,6 +3815,7 @@
ngx_conf_merge_value(conf->server_tokens, prev->server_tokens, 1);
ngx_conf_merge_value(conf->chunked_transfer_encoding,
prev->chunked_transfer_encoding, 1);
+ ngx_conf_merge_value(conf->etag, prev->etag, 1);

ngx_conf_merge_ptr_value(conf->open_file_cache,
prev->open_file_cache, NULL);

Modified: trunk/src/http/ngx_http_core_module.h
===================================================================
--- trunk/src/http/ngx_http_core_module.h 2012-07-09 00:13:06 UTC (rev 4749)
+++ trunk/src/http/ngx_http_core_module.h 2012-07-09 14:53:42 UTC (rev 4750)
@@ -392,6 +392,7 @@
ngx_flag_t recursive_error_pages; /* recursive_error_pages */
ngx_flag_t server_tokens; /* server_tokens */
ngx_flag_t chunked_transfer_encoding; /* chunked_transfer_encoding */
+ ngx_flag_t etag; /* etag */

#if (NGX_HTTP_GZIP)
ngx_flag_t gzip_vary; /* gzip_vary */

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] svn commit: r4750 - trunk/src/http

Anonymous User 1140 July 09, 2012 10:54AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 222
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready