maskit opened a new issue, #9428: URL: https://github.com/apache/trafficserver/issues/9428
We have `max_settings_per_frame`, `max_settings_per_minute`, and `max_settings_frames_per_minute` for H2, but sending multiple SETTINGS frame on H3 is not allowed. > SETTINGS frames always apply to an entire HTTP/3 connection, never a single stream. A SETTINGS frame MUST be sent as the first frame of each [control stream](https://datatracker.ietf.org/doc/html/rfc9114#control-streams) (see [Section 6.2.1](https://datatracker.ietf.org/doc/html/rfc9114#control-streams)) by each peer, and it MUST NOT be sent subsequently. If an endpoint receives a second SETTINGS frame on the [control stream](https://datatracker.ietf.org/doc/html/rfc9114#control-streams), the endpoint MUST respond with a [connection error](https://datatracker.ietf.org/doc/html/rfc9114#errors) of type [H3_FRAME_UNEXPECTED](https://datatracker.ietf.org/doc/html/rfc9114#H3_FRAME_UNEXPECTED).[ΒΆ](https://datatracker.ietf.org/doc/html/rfc9114#section-7.2.4-2) https://datatracker.ietf.org/doc/html/rfc9114#name-settings It's testable through `H3FrameDispatcher` like the unit test does (Need to add Http3SettingsHandler instead of the mock handler). https://github.com/apache/trafficserver/blob/2402444b5864411f2415ae142ba81d7637656531/proxy/http3/test/test_Http3FrameDispatcher.cc#L31-L47 It's also testable by calling `Http3SettingsHandler::handleFrame` directly. https://github.com/apache/trafficserver/blob/2402444b5864411f2415ae142ba81d7637656531/proxy/http3/Http3App.h#L99 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
