You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2002/01/10 13:53:50 UTC
cvs commit: jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/filters IdentityInputFilter.java
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: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>