You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2009/04/17 15:36:50 UTC

svn commit: r765997 - in /httpd/httpd/branches/2.2.x: CHANGES STATUS modules/cache/mod_disk_cache.c modules/cache/mod_mem_cache.c

Author: jim
Date: Fri Apr 17 13:36:50 2009
New Revision: 765997

URL: http://svn.apache.org/viewvc?rev=765997&view=rev
Log:
Approved backedports:
-     http://svn.apache.org/viewvc?view=rev&revision=649162
-     http://svn.apache.org/viewvc?view=rev&revision=649176
-     http://svn.apache.org/viewvc?view=rev&revision=649460


Modified:
    httpd/httpd/branches/2.2.x/CHANGES
    httpd/httpd/branches/2.2.x/STATUS
    httpd/httpd/branches/2.2.x/modules/cache/mod_disk_cache.c
    httpd/httpd/branches/2.2.x/modules/cache/mod_mem_cache.c

Modified: httpd/httpd/branches/2.2.x/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=765997&r1=765996&r2=765997&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Fri Apr 17 13:36:50 2009
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.12
 
+  *) mod_disk_cache/mod_mem_cache: Fix handling of CacheIgnoreHeaders
+     directive to correctly remove headers before storing them.
+     [Lars Eilebrecht]
+
   *) mod_deflate: revert changes in 2.2.8 that caused an invalid
      etag to be emitted for on-the-fly gzip content-encoding.
      PR 39727 will require larger fixes and this fix was far more

Modified: httpd/httpd/branches/2.2.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=765997&r1=765996&r2=765997&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/STATUS (original)
+++ httpd/httpd/branches/2.2.x/STATUS Fri Apr 17 13:36:50 2009
@@ -95,23 +95,6 @@
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
- * mod_disk_cache/mod_mem_cache: the modules currently fail to correctly
-   handle the CacheIgnoreHeaders directive. The issue is that
-   r->err_headers_out gets merged into the headers_out value *after* 
-   ap_cache_cacheable_headers() gets called. So it is not possible to
-   remove headers with CacheIgnoreHeaders when they have been set in
-   r->err_headers_out. This issue does not exist in trunk, as the code
-   related to ap_cache_cacheable_headers() got refactored completely.
-   In trunk the API was changed so this patch is not a full backport
-   from trunk, but just fixes the actual bug.
-   Related patches in trunk:
-     http://svn.apache.org/viewvc?view=rev&revision=649162
-     http://svn.apache.org/viewvc?view=rev&revision=649176
-     http://svn.apache.org/viewvc?view=rev&revision=649460
-   Patch for version 2.2.x:
-     http://people.apache.org/~lars/cacheignoreheaders-fix.patch
-   +1: lars, minfrin, rpluem, jim
-
  * mod_proxy_ajp: The remote port information was forgotten from
    the builtin data of the AJP 13 protocol.  Since the servlet spec
    allows to retrieve it via getRemotePort(), we provide the port to

Modified: httpd/httpd/branches/2.2.x/modules/cache/mod_disk_cache.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/cache/mod_disk_cache.c?rev=765997&r1=765996&r2=765997&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/modules/cache/mod_disk_cache.c (original)
+++ httpd/httpd/branches/2.2.x/modules/cache/mod_disk_cache.c Fri Apr 17 13:36:50 2009
@@ -916,7 +916,9 @@
     if (r->headers_out) {
         apr_table_t *headers_out;
 
-        headers_out = ap_cache_cacheable_hdrs_out(r->pool, r->headers_out,
+        headers_out = apr_table_overlay(r->pool, r->headers_out,
+                                        r->err_headers_out);
+        headers_out = ap_cache_cacheable_hdrs_out(r->pool, headers_out,
                                                   r->server);
 
         if (!apr_table_get(headers_out, "Content-Type")
@@ -931,8 +933,6 @@
                            r->content_encoding);
         }
 
-        headers_out = apr_table_overlay(r->pool, headers_out,
-                                        r->err_headers_out);
         rv = store_table(dobj->hfd, headers_out);
         if (rv != APR_SUCCESS) {
             return rv;

Modified: httpd/httpd/branches/2.2.x/modules/cache/mod_mem_cache.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/cache/mod_mem_cache.c?rev=765997&r1=765996&r2=765997&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/modules/cache/mod_mem_cache.c (original)
+++ httpd/httpd/branches/2.2.x/modules/cache/mod_mem_cache.c Fri Apr 17 13:36:50 2009
@@ -604,7 +604,9 @@
     mobj->req_hdrs = deep_table_copy(mobj->pool, r->headers_in);
 
     /* Precompute how much storage we need to hold the headers */
-    headers_out = ap_cache_cacheable_hdrs_out(r->pool, r->headers_out,
+    headers_out = apr_table_overlay(r->pool, r->headers_out,
+                                    r->err_headers_out);
+    headers_out = ap_cache_cacheable_hdrs_out(r->pool, headers_out,
                                               r->server);
 
     /* If not set in headers_out, set Content-Type */
@@ -620,7 +622,6 @@
                        r->content_encoding);
     }
 
-    headers_out = apr_table_overlay(r->pool, headers_out, r->err_headers_out);
     mobj->header_out = deep_table_copy(mobj->pool, headers_out);
 
     /* Init the info struct */