This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit adeb0533b3f67d172df73692344b51fe69fb6a16 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/Http2Parser.java | 24 ++++++++++++++++------ .../apache/coyote/http2/Http2UpgradeHandler.java | 2 +- test/org/apache/coyote/http2/Http2TestBase.java | 4 ++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/java/org/apache/coyote/http2/Http2Parser.java b/java/org/apache/coyote/http2/Http2Parser.java index 42647c8..1cf6f77 100644 --- a/java/org/apache/coyote/http2/Http2Parser.java +++ b/java/org/apache/coyote/http2/Http2Parser.java @@ -122,7 +122,7 @@ class Http2Parser { readContinuationFrame(streamId, flags, payloadSize); break; case UNKNOWN: - readUnknownFrame(streamId, frameType, flags, payloadSize); + readUnknownFrame(streamId, frameTypeId, flags, payloadSize); } return true; @@ -459,15 +459,15 @@ class Http2Parser { } - private void readUnknownFrame(int streamId, FrameType frameType, int flags, int payloadSize) + protected void readUnknownFrame(int streamId, int frameTypeId, int flags, int payloadSize) throws IOException { try { - swallowPayload(streamId, frameType.getId(), payloadSize, false); + swallowPayload(streamId, frameTypeId, payloadSize, false); } 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); } @@ -697,7 +697,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 02e6b9d..3c82718 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -1875,7 +1875,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 bb3f145..f459a40 100644 --- a/test/org/apache/coyote/http2/Http2TestBase.java +++ b/test/org/apache/coyote/http2/Http2TestBase.java @@ -1184,10 +1184,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