]> git.kaiwu.me - nginx.git/commitdiff
Entity tags: clear on entity changes.
authorMaxim Dounin <mdounin@mdounin.ru>
Sat, 7 Jul 2012 21:22:27 +0000 (21:22 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Sat, 7 Jul 2012 21:22:27 +0000 (21:22 +0000)
src/http/modules/ngx_http_addition_filter_module.c
src/http/modules/ngx_http_gzip_filter_module.c
src/http/modules/ngx_http_ssi_filter_module.c
src/http/modules/ngx_http_sub_filter_module.c
src/http/modules/ngx_http_xslt_filter_module.c
src/http/ngx_http_core_module.h
src/http/ngx_http_special_response.c

index 24747c564b81cd95eca012dab31202d625b8e7a2..f598ceab3f7caa57810a06138f594c80505896fe 100644 (file)
@@ -121,6 +121,7 @@ ngx_http_addition_header_filter(ngx_http_request_t *r)
 
     ngx_http_clear_content_length(r);
     ngx_http_clear_accept_ranges(r);
+    ngx_http_clear_etag(r);
 
     return ngx_http_next_header_filter(r);
 }
index 128d3d9c89de543fd3d971fbb1642c578313d88b..09994d9b204e858609c0613edbf36c27d5c0655f 100644 (file)
@@ -306,6 +306,7 @@ ngx_http_gzip_header_filter(ngx_http_request_t *r)
 
     ngx_http_clear_content_length(r);
     ngx_http_clear_accept_ranges(r);
+    ngx_http_clear_etag(r);
 
     return ngx_http_next_header_filter(r);
 }
index 219465ae909473843fc2b2c4e31918552d66a51a..13badac615726d4ff472ccc71ce7c781dee42970 100644 (file)
@@ -361,6 +361,7 @@ ngx_http_ssi_header_filter(ngx_http_request_t *r)
         ngx_http_clear_content_length(r);
         ngx_http_clear_last_modified(r);
         ngx_http_clear_accept_ranges(r);
+        ngx_http_clear_etag(r);
     }
 
     return ngx_http_next_header_filter(r);
index be5e90c4e9ada31464ba0e8a6fb9b10a358cabc5..989adf5ad9243497d11b2d07100aae6186bb3ed5 100644 (file)
@@ -168,6 +168,7 @@ ngx_http_sub_header_filter(ngx_http_request_t *r)
     if (r == r->main) {
         ngx_http_clear_content_length(r);
         ngx_http_clear_last_modified(r);
+        ngx_http_clear_etag(r);
     }
 
     return ngx_http_next_header_filter(r);
index 9b0354b2ee69e66407bd8964f2891334c955aa68..94d1c86ccd57d92a176caafc1086bfed4e71367d 100644 (file)
@@ -328,6 +328,7 @@ ngx_http_xslt_send(ngx_http_request_t *r, ngx_http_xslt_filter_ctx_t *ctx,
         }
 
         ngx_http_clear_last_modified(r);
+        ngx_http_clear_etag(r);
     }
 
     rc = ngx_http_next_header_filter(r);
index e95d1e06968ce32af26884cdbc59703c06d96b53..2c96167a01642e78ada086af04d5beabba5ea3e1 100644 (file)
@@ -555,5 +555,12 @@ extern ngx_str_t  ngx_http_core_get_method;
         r->headers_out.location = NULL;                                       \
     }
 
+#define ngx_http_clear_etag(r)                                                \
+                                                                              \
+    if (r->headers_out.etag) {                                                \
+        r->headers_out.etag->hash = 0;                                        \
+        r->headers_out.etag = NULL;                                           \
+    }
+
 
 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */
index 77b3dd13fcc57271d911ae0878e82faa45e8a7fe..224cb811d3c4081db1b77ad118c597e3cde37afc 100644 (file)
@@ -656,6 +656,7 @@ ngx_http_send_special_response(ngx_http_request_t *r,
 
     ngx_http_clear_accept_ranges(r);
     ngx_http_clear_last_modified(r);
+    ngx_http_clear_etag(r);
 
     rc = ngx_http_send_header(r);
 
@@ -754,6 +755,7 @@ ngx_http_send_refresh(ngx_http_request_t *r)
 
     ngx_http_clear_accept_ranges(r);
     ngx_http_clear_last_modified(r);
+    ngx_http_clear_etag(r);
 
     rc = ngx_http_send_header(r);