Author: markt
Date: Tue Mar 2 16:02:25 2010
New Revision: 918093
URL: http://svn.apache.org/viewvc?rev=918093&view=rev
Log:
Better fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=48660
As per Konstantin's comments, ensure a single Vary header is used and take
account of * if present
Modified:
tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=918093&r1=918092&r2=918093&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Tue Mar
2 16:02:25 2010
@@ -1660,7 +1660,17 @@
outputBuffer.addActiveFilter(outputFilters[Constants.GZIP_FILTER]);
headers.setValue("Content-Encoding").setString("gzip");
// Make Proxies happy via Vary (from mod_deflate)
- headers.addValue("Vary").setString("Accept-Encoding");
+ MessageBytes vary = headers.getValue("Vary");
+ if (vary == null) {
+ // Add a new Vary header
+ headers.setValue("Vary").setString("Accept-Encoding");
+ } else if (vary.equals("*")) {
+ // No action required
+ } else {
+ // Merge into current header
+ headers.setValue("Vary").setString(
+ vary.getString() + ",Accept-Encoding");
+ }
}
// Add date header
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=918093&r1=918092&r2=918093&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Tue Mar
2 16:02:25 2010
@@ -1159,7 +1159,17 @@
outputBuffer.addActiveFilter(outputFilters[Constants.GZIP_FILTER]);
headers.setValue("Content-Encoding").setString("gzip");
// Make Proxies happy via Vary (from mod_deflate)
- headers.addValue("Vary").setString("Accept-Encoding");
+ MessageBytes vary = headers.getValue("Vary");
+ if (vary == null) {
+ // Add a new Vary header
+ headers.setValue("Vary").setString("Accept-Encoding");
+ } else if (vary.equals("*")) {
+ // No action required
+ } else {
+ // Merge into current header
+ headers.setValue("Vary").setString(
+ vary.getString() + ",Accept-Encoding");
+ }
}
// Add date header
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=918093&r1=918092&r2=918093&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Mar 2
16:02:25 2010
@@ -815,7 +815,17 @@
outputBuffer.addActiveFilter(outputFilters[Constants.GZIP_FILTER]);
headers.setValue("Content-Encoding").setString("gzip");
// Make Proxies happy via Vary (from mod_deflate)
- headers.addValue("Vary").setString("Accept-Encoding");
+ MessageBytes vary = headers.getValue("Vary");
+ if (vary == null) {
+ // Add a new Vary header
+ headers.setValue("Vary").setString("Accept-Encoding");
+ } else if (vary.equals("*")) {
+ // No action required
+ } else {
+ // Merge into current header
+ headers.setValue("Vary").setString(
+ vary.getString() + ",Accept-Encoding");
+ }
}
// Add date header
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]