hgomez      2002/12/19 01:13:16

  Modified:    http11/src/java/org/apache/coyote/http11
                        Http11Processor.java
  Log:
  If content is allready gzipped, no need to recompress it
  
  Revision  Changes    Path
  1.49      +26 -10    
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java
  
  Index: Http11Processor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- Http11Processor.java      18 Dec 2002 20:36:58 -0000      1.48
  +++ Http11Processor.java      19 Dec 2002 09:13:16 -0000      1.49
  @@ -257,6 +257,12 @@
   
   
       /**
  +     * Minimum contentsize to make compression.
  +     */
  +    protected int compressionMinSize = 2048;
  +
  +
  +    /**
        * Host name (used to avoid useless B2C conversion on the host name).
        */
       protected char[] hostNameC = new char[0];
  @@ -976,17 +982,27 @@
                   request.getMimeHeaders().getValue("accept-encoding");
               if ((acceptEncodingMB != null) 
                   && (acceptEncodingMB.indexOf("gzip") != -1)) {
  -                // Check content-type
  -                if (compressionLevel == 1) {
  -                    int contentLength = response.getContentLength();
  -                    // FIXME: Make the value configurable
  -                    if ((contentLength == -1) || (contentLength > 2048)) {
  -                        useCompression = 
  -                            response.getContentType().startsWith("text/");
  -                    }
  -                } else {
  -                    useCompression = true;
  +                     
  +                // Check in content is not allready gzipped
  +                MessageBytes contentEncodingMB =
  +                                     
response.getMimeHeaders().getValue("Content-Encoding");
  +                                     
  +             if ((contentEncodingMB == null) 
  +                     || (contentEncodingMB.indexOf("gzip") == -1))
  +                {                    
  +                     // Check content-type
  +                     if (compressionLevel == 1) {
  +                         int contentLength = response.getContentLength();
  +                         // FIXME: Make the value configurable
  +                         if ((contentLength == -1) || (contentLength > 
compressionMinSize)) {
  +                             useCompression = 
  +                                 response.getContentType().startsWith("text/");
  +                         }
  +                     } else {
  +                         useCompression = true;
  +                     }
                   }
  +                
                   // Change content-length to -1 to force chunking
                   if (useCompression) {
                       response.setContentLength(-1);
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to