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 2018/02/13 12:19:27 UTC
svn commit: r1824119 - in /tomcat/trunk/java/org/apache/coyote/http2:
Http2AsyncParser.java Http2Parser.java
Author: remm
Date: Tue Feb 13 12:19:27 2018
New Revision: 1824119
URL: http://svn.apache.org/viewvc?rev=1824119&view=rev
Log:
Refactoring of swallow to reduce duplication.
Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java
tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java?rev=1824119&r1=1824118&r2=1824119&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java Tue Feb 13 12:19:27 2018
@@ -88,39 +88,6 @@ class Http2AsyncParser extends Http2Pars
}
}
- @Override
- protected void swallow(int streamId, int len, boolean mustBeZero, ByteBuffer buffer)
- throws IOException, ConnectionException {
- if (log.isDebugEnabled()) {
- log.debug(sm.getString("http2Parser.swallow.debug", connectionId,
- Integer.toString(streamId), Integer.toString(len)));
- }
- if (len == 0) {
- return;
- }
- if (!mustBeZero) {
- buffer.position(buffer.position() + len);
- } else {
- int read = 0;
- byte[] buf = new byte[1024];
- while (read < len) {
- int thisTime = Math.min(buf.length, len - read);
- buffer.get(buf, 0, thisTime);
- // Validate the padding is zero since receiving non-zero padding
- // is a strong indication of either a faulty client or a server
- // side bug.
- for (int i = 0; i < thisTime; i++) {
- if (buf[i] != 0) {
- throw new ConnectionException(sm.getString("http2Parser.nonZeroPadding",
- connectionId, Integer.toString(streamId)), Http2Error.PROTOCOL_ERROR);
- }
- }
- read += thisTime;
- }
- }
- }
-
-
private class FrameCompletionCheck implements CompletionCheck {
private final FrameCompletionHandler handler;
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java?rev=1824119&r1=1824118&r2=1824119&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java Tue Feb 13 12:19:27 2018
@@ -527,23 +527,31 @@ class Http2Parser {
if (len == 0) {
return;
}
- int read = 0;
- byte[] buffer = new byte[1024];
- while (read < len) {
- int thisTime = Math.min(buffer.length, len - read);
- input.fill(true, buffer, 0, thisTime);
- if (mustBeZero) {
- // Validate the padding is zero since receiving non-zero padding
- // is a strong indication of either a faulty client or a server
- // side bug.
- for (int i = 0; i < thisTime; i++) {
- if (buffer[i] != 0) {
- throw new ConnectionException(sm.getString("http2Parser.nonZeroPadding",
- connectionId, Integer.toString(streamId)), Http2Error.PROTOCOL_ERROR);
+ if (!mustBeZero && byteBuffer != null) {
+ byteBuffer.position(byteBuffer.position() + len);
+ } else {
+ int read = 0;
+ byte[] buffer = new byte[1024];
+ while (read < len) {
+ int thisTime = Math.min(buffer.length, len - read);
+ if (byteBuffer == null) {
+ input.fill(true, buffer, 0, thisTime);
+ } else {
+ byteBuffer.get(buffer, 0, thisTime);
+ }
+ if (mustBeZero) {
+ // Validate the padding is zero since receiving non-zero padding
+ // is a strong indication of either a faulty client or a server
+ // side bug.
+ for (int i = 0; i < thisTime; i++) {
+ if (buffer[i] != 0) {
+ throw new ConnectionException(sm.getString("http2Parser.nonZeroPadding",
+ connectionId, Integer.toString(streamId)), Http2Error.PROTOCOL_ERROR);
+ }
}
}
+ read += thisTime;
}
- read += thisTime;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org