You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/03/02 17:02:25 UTC

svn commit: r918093 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java Http11Processor.java

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: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r918093 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java Http11Processor.java

Posted by Mark Thomas <ma...@apache.org>.
On 03/03/2010 11:10, Konstantin Kolinko wrote:
> 2010/3/2  <ma...@apache.org>:
>> 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
>>
> 
> 
>> +            MessageBytes vary = headers.getValue("Vary");
>> +            if (vary == null) {
>> +                // Add a new Vary header
>> +                headers.setValue("Vary").setString("Accept-Encoding");
>> +            } else if (vary.equals("*")) {
> The above is MessageBytes.equals(String). I am sure that it won't work
> as expected.

I know. It was deliberate. I'm equally sure it will work as expected.
Did you look at the implementation of the MessageBytes#equals(String)
method?

Mark



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r918093 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java Http11Processor.java

Posted by Konstantin Kolinko <kn...@gmail.com>.
2010/3/2  <ma...@apache.org>:
> 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
>


> +            MessageBytes vary = headers.getValue("Vary");
> +            if (vary == null) {
> +                // Add a new Vary header
> +                headers.setValue("Vary").setString("Accept-Encoding");
> +            } else if (vary.equals("*")) {
The above is MessageBytes.equals(String). I am sure that it won't work
as expected.

> +                // No action required
> +            } else {
> +                // Merge into current header
> +                headers.setValue("Vary").setString(
> +                        vary.getString() + ",Accept-Encoding");
> +            }
>         }

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org