This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 74fe53dfe91412f75e69b5522def4bb752fab3b4 Author: Mark Thomas <ma...@apache.org> AuthorDate: Mon Mar 15 18:57:37 2021 +0000 Expose the actual frameTypeId for unknown frames --- java/org/apache/coyote/http2/Http2AsyncParser.java | 2 +- java/org/apache/coyote/http2/Http2Parser.java | 24 ++++++++++++++++------ .../apache/coyote/http2/Http2UpgradeHandler.java | 2 +- test/org/apache/coyote/http2/Http2TestBase.java | 4 ++-- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/java/org/apache/coyote/http2/Http2AsyncParser.java b/java/org/apache/coyote/http2/Http2AsyncParser.java index 296b84e..eefc4c7 100644 --- a/java/org/apache/coyote/http2/Http2AsyncParser.java +++ b/java/org/apache/coyote/http2/Http2AsyncParser.java @@ -275,7 +275,7 @@ class Http2AsyncParser extends Http2Parser { readContinuationFrame(streamId, flags, payloadSize, payload); break; case UNKNOWN: - readUnknownFrame(streamId, frameType, flags, payloadSize, payload); + readUnknownFrame(streamId, frameTypeId, flags, payloadSize, payload); } } // See if there is a new 9 byte header and continue parsing if possible diff --git a/java/org/apache/coyote/http2/Http2Parser.java b/java/org/apache/coyote/http2/Http2Parser.java index 32d8205..cad0fd4 100644 --- a/java/org/apache/coyote/http2/Http2Parser.java +++ b/java/org/apache/coyote/http2/Http2Parser.java @@ -124,7 +124,7 @@ class Http2Parser { readContinuationFrame(streamId, flags, payloadSize, null); break; case UNKNOWN: - readUnknownFrame(streamId, frameType, flags, payloadSize, null); + readUnknownFrame(streamId, frameTypeId, flags, payloadSize, null); } return true; @@ -516,15 +516,15 @@ class Http2Parser { } - protected void readUnknownFrame(int streamId, FrameType frameType, int flags, int payloadSize, ByteBuffer buffer) + protected void readUnknownFrame(int streamId, int frameTypeId, int flags, int payloadSize, ByteBuffer buffer) throws IOException { try { - swallowPayload(streamId, frameType.getId(), payloadSize, false, buffer); + swallowPayload(streamId, frameTypeId, payloadSize, false, buffer); } catch (ConnectionException e) { // Will never happen because swallow() is called with mustBeZero set // to false } - output.swallowed(streamId, frameType, flags, payloadSize); + output.onSwallowedUnknownFrame(streamId, frameTypeId, flags, payloadSize); } @@ -776,7 +776,19 @@ class Http2Parser { // Window size void incrementWindowSize(int streamId, int increment) throws Http2Exception; - // Testing - void swallowed(int streamId, FrameType frameType, int flags, int size) throws IOException; + /** + * Notification triggered when the parser swallows the payload of an + * unknown frame. + * + * @param streamId The stream on which the swallowed frame was + * received + * @param frameTypeId The (unrecognised) type of swallowed frame + * @param flags The flags set in the header of the swallowed + * frame + * @param size The payload size of the swallowed frame + * + * @throws IOException + */ + void onSwallowedUnknownFrame(int streamId, int frameTypeId, int flags, int size) throws IOException; } } diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java index ea43873..ca6b7a7 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -1768,7 +1768,7 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH @Override - public void swallowed(int streamId, FrameType frameType, int flags, int size) + public void onSwallowedUnknownFrame(int streamId, int frameTypeId, int flags, int size) throws IOException { // NO-OP. } diff --git a/test/org/apache/coyote/http2/Http2TestBase.java b/test/org/apache/coyote/http2/Http2TestBase.java index eb9f83b..ef1ccbe 100644 --- a/test/org/apache/coyote/http2/Http2TestBase.java +++ b/test/org/apache/coyote/http2/Http2TestBase.java @@ -1169,10 +1169,10 @@ public abstract class Http2TestBase extends TomcatBaseTest { @Override - public void swallowed(int streamId, FrameType frameType, int flags, int size) { + public void onSwallowedUnknownFrame(int streamId, int frameTypeId, int flags, int size) { trace.append(streamId); trace.append(","); - trace.append(frameType); + trace.append(frameTypeId); trace.append(","); trace.append(flags); trace.append(","); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org