remm        02/01/10 04:53:50

  Modified:    http11/src/java/org/apache/coyote/http11
                        Http11Connector.java InternalInputBuffer.java
                        InternalOutputBuffer.java
               http11/src/java/org/apache/coyote/http11/filters
                        IdentityInputFilter.java
  Log:
  - Fix some obvious content delimitation problems.
  - Implement content delimitation for identity transfer encoding.
  
  Revision  Changes    Path
  1.9       +10 -0     
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Connector.java
  
  Index: Http11Connector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Connector.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Http11Connector.java      9 Jan 2002 23:29:29 -0000       1.8
  +++ Http11Connector.java      10 Jan 2002 12:53:50 -0000      1.9
  @@ -295,6 +295,16 @@
   
               // Finish the handling of the request
               try {
  +                inputBuffer.endRequest();
  +            } catch (IOException e) {
  +                e.printStackTrace();
  +                error = true;
  +            } catch (Throwable t) {
  +                // Problem ...
  +                t.printStackTrace();
  +                error = true;
  +            }
  +            try {
                   outputBuffer.endRequest();
               } catch (IOException e) {
                   e.printStackTrace();
  
  
  
  1.8       +12 -7     
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java
  
  Index: InternalInputBuffer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- InternalInputBuffer.java  9 Jan 2002 12:57:49 -0000       1.7
  +++ InternalInputBuffer.java  10 Jan 2002 12:53:50 -0000      1.8
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java,v
 1.7 2002/01/09 12:57:49 remm Exp $
  - * $Revision: 1.7 $
  - * $Date: 2002/01/09 12:57:49 $
  + * $Header: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java,v
 1.8 2002/01/10 12:53:50 remm Exp $
  + * $Revision: 1.8 $
  + * $Date: 2002/01/10 12:53:50 $
    *
    * ====================================================================
    *
  @@ -303,6 +303,8 @@
   
           activeFilters[++lastActiveFilter] = filter;
   
  +        filter.setRequest(request);
  +
       }
   
   
  @@ -376,8 +378,9 @@
       public void endRequest()
           throws IOException {
   
  -        for (int i = 0; i <= lastActiveFilter; i++) {
  -            pos -= activeFilters[i].end();
  +        if (lastActiveFilter != -1) {
  +            int extraBytes = (int) activeFilters[lastActiveFilter].end();
  +            pos = pos - extraBytes;
           }
   
       }
  @@ -761,9 +764,11 @@
                       return -1;
               }
   
  -            chunk.setBytes(buf, pos, lastValid - pos);
  +            int length = lastValid - pos;
  +            chunk.setBytes(buf, pos, length);
  +            pos = lastValid;
   
  -            return (lastValid - pos);
  +            return (length);
   
           }
   
  
  
  
  1.8       +2 -0      
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalOutputBuffer.java
  
  Index: InternalOutputBuffer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalOutputBuffer.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- InternalOutputBuffer.java 9 Jan 2002 12:57:49 -0000       1.7
  +++ InternalOutputBuffer.java 10 Jan 2002 12:53:50 -0000      1.8
  @@ -278,6 +278,8 @@
   
           activeFilters[++lastActiveFilter] = filter;
   
  +        filter.setResponse(response);
  +
       }
   
   
  
  
  
  1.6       +17 -6     
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/filters/IdentityInputFilter.java
  
  Index: IdentityInputFilter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/filters/IdentityInputFilter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- IdentityInputFilter.java  9 Dec 2001 22:10:47 -0000       1.5
  +++ IdentityInputFilter.java  10 Jan 2002 12:53:50 -0000      1.6
  @@ -102,7 +102,7 @@
       /**
        * Remaining bytes.
        */
  -    protected long remaining = -1;
  +    protected long remaining = 0;
   
   
       /**
  @@ -111,6 +111,12 @@
       protected InputBuffer buffer;
   
   
  +    /**
  +     * Chunk used to read leftover bytes.
  +     */
  +    protected ByteChunk endChunk = new ByteChunk();
  +
  +
       // ------------------------------------------------------------- Properties
   
   
  @@ -163,7 +169,7 @@
                                      (int) remaining);
                       result = (int) remaining;
                   }
  -                remaining = remaining - result;
  +                remaining = remaining - chunk.getLength();
               } else {
                   // No more bytes left to be read : return -1 and clear the 
                   // buffer
  @@ -195,9 +201,13 @@
       public long end()
           throws IOException {
   
  -        // FIXME: Consume extra bytes.
  -        // FIXME: If too many bytes were read, return the amount.
  -        return 0;
  +        // Consume extra bytes.
  +        while (remaining > 0) {
  +            remaining = remaining - buffer.doRead(endChunk);
  +        }
  +
  +        // If too many bytes were read, return the amount.
  +        return -remaining;
   
       }
   
  @@ -215,7 +225,8 @@
        */
       public void recycle() {
           contentLength = -1;
  -        remaining = -1;
  +        remaining = 0;
  +        endChunk.recycle();
       }
   
   
  
  
  

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

Reply via email to