remm        2004/09/13 14:39:40

  Modified:    http11/src/java/org/apache/coyote/http11
                        Http11Processor.java
  Log:
  - Cleanup a little access to the headers using a local variable.
  - Use direct access to the headers whenever possible (extra checks were done in 
Response).
  - Use setValue for Server and Date headers.
  
  Revision  Changes    Path
  1.109     +25 -33    
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.108
  retrieving revision 1.109
  diff -u -r1.108 -r1.109
  --- Http11Processor.java      13 Sep 2004 18:25:08 -0000      1.108
  +++ Http11Processor.java      13 Sep 2004 21:39:39 -0000      1.109
  @@ -1126,9 +1126,10 @@
               methodMB.setString(Constants.POST);
           }
   
  +        MimeHeaders headers = request.getMimeHeaders();
  +        
           // Check connection header
  -        MessageBytes connectionValueMB = 
  -            request.getMimeHeaders().getValue("connection");
  +        MessageBytes connectionValueMB = headers.getValue("connection");
           if (connectionValueMB != null) {
               ByteChunk connectionValueBC = connectionValueMB.getByteChunk();
               if (findBytes(connectionValueBC, Constants.CLOSE_BYTES) != -1) {
  @@ -1141,7 +1142,7 @@
   
           MessageBytes expectMB = null;
           if (http11)
  -            expectMB = request.getMimeHeaders().getValue("expect");
  +            expectMB = headers.getValue("expect");
           if ((expectMB != null)
               && (expectMB.indexOfIgnoreCase("100-continue", 0) != -1)) {
               inputBuffer.setSwallowInput(false);
  @@ -1150,8 +1151,7 @@
   
           // Check user-agent header
           if ((restrictedUserAgents != null) && ((http11) || (keepAlive))) {
  -            MessageBytes userAgentValueMB =  
  -                request.getMimeHeaders().getValue("user-agent");
  +            MessageBytes userAgentValueMB = headers.getValue("user-agent");
               // Check in the restricted list, and adjust the http11 
               // and keepAlive flags accordingly
               if(userAgentValueMB != null) {
  @@ -1186,8 +1186,7 @@
                           (uriB, uriBCStart + slashPos, 
                            uriBC.getLength() - slashPos);
                   }
  -                MessageBytes hostMB = 
  -                    request.getMimeHeaders().setValue("host");
  +                MessageBytes hostMB = headers.setValue("host");
                   hostMB.setBytes(uriB, uriBCStart + pos + 3, 
                                   slashPos - pos - 3);
               }
  @@ -1208,8 +1207,7 @@
           // Parse transfer-encoding header
           MessageBytes transferEncodingValueMB = null;
           if (http11)
  -            transferEncodingValueMB = 
  -                request.getMimeHeaders().getValue("transfer-encoding");
  +            transferEncodingValueMB = headers.getValue("transfer-encoding");
           if (transferEncodingValueMB != null) {
               String transferEncodingValue = transferEncodingValueMB.toString();
               // Parse the comma separated list. "identity" codings are ignored
  @@ -1238,7 +1236,7 @@
               }
           }
   
  -        MessageBytes valueMB = request.getMimeHeaders().getValue("host");
  +        MessageBytes valueMB = headers.getValue("host");
   
           // Check host header
           if (http11 && (valueMB == null)) {
  @@ -1467,8 +1465,7 @@
   
           int contentLength = response.getContentLength();
           if (contentLength != -1) {
  -            response.getMimeHeaders().setValue("Content-Length")
  -                .setInt(contentLength);
  +            headers.setValue("Content-Length").setInt(contentLength);
               outputBuffer.addActiveFilter
                   (outputFilters[Constants.IDENTITY_FILTER]);
               contentDelimitation = true;
  @@ -1477,7 +1474,7 @@
                   outputBuffer.addActiveFilter
                       (outputFilters[Constants.CHUNKED_FILTER]);
                   contentDelimitation = true;
  -                response.addHeader("Transfer-Encoding", "chunked");
  +                headers.addValue("Transfer-Encoding").setString("chunked");
               } else {
                   outputBuffer.addActiveFilter
                       (outputFilters[Constants.IDENTITY_FILTER]);
  @@ -1486,35 +1483,30 @@
   
           if (useCompression) {
               outputBuffer.addActiveFilter(outputFilters[Constants.GZIP_FILTER]);
  -            // FIXME: Make content-encoding generation dynamic
  -            response.setHeader("Content-Encoding", "gzip");
  +            headers.setValue("Content-Encoding").setString("gzip");
               // Make Proxies happy via Vary (from mod_deflate)
  -            response.setHeader("Vary", "Accept-Encoding");
  +            headers.setValue("Vary").setString("Accept-Encoding");
           }
   
           // Add date header
  -        if (! response.containsHeader("Date")){
  -          
  -          String date = null;
  -          if (System.getSecurityManager() != null){
  +        String date = null;
  +        if (System.getSecurityManager() != null){
               date = (String)AccessController.doPrivileged( 
  -                new PrivilegedAction() {
  -                    public Object run(){
  -                        return FastHttpDateFormat.getCurrentDate();
  +                    new PrivilegedAction() {
  +                        public Object run(){
  +                            return FastHttpDateFormat.getCurrentDate();
  +                        }
                       }
  -                }
               );
  -          } else {
  +        } else {
               date = FastHttpDateFormat.getCurrentDate();
  -          }
  -          response.addHeader("Date", date);
           }
  -         
  +        headers.setValue("Date").setString(date);
  +
           // Add server header
  -        response.addHeader("Server", Constants.SERVER);
  +        headers.setValue("Server").setString(Constants.SERVER);
   
  -        // Add transfer encoding header
  -        // FIXME
  +        // FIXME: Add transfer encoding header
   
           if ((entityBody) && (!contentDelimitation)) {
               // Mark as close the connection after the request, and add the 
  @@ -1526,9 +1518,9 @@
           // Connection: close header.
           keepAlive = keepAlive && !statusDropsConnection(statusCode);
           if (!keepAlive) {
  -            response.addHeader("Connection", "close");
  +            headers.addValue("Connection").setString("close");
           } else if (!http11) {
  -            response.addHeader("Connection", "Keep-Alive");
  +            headers.addValue("Connection").setString("Keep-Alive");
           }
   
           // Build the response header
  
  
  

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

Reply via email to