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

Reply via email to