commit | 92df092e075e98ab07e810c3e24a9078f687c8e8 | [log] [tgz] |
---|---|---|
author | bnc <bnc@google.com> | Tue Apr 27 14:23:39 2021 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Apr 27 14:24:14 2021 -0700 |
tree | 565c5fbd21c26f1d194b745525a9f42c0b206140 | |
parent | 0142a09c2f0c8bb48f2aa13ec375f5e3287ad2e6 [diff] |
Signal error on PUSH_PROMISE and CANCEL_PUSH frames. Since HttpEncoder is not capable of sending MAX_PUSH_ID frames, receiving these frames is a violation of the spec. For simplicity, use the error code H3_FRAME_ERROR. This is incorrect, because receiving a PUSH_PROMISE frame by the client on the control stream, or receiving a CANCEL_PUSH frame either by the client or by the server on the control stream should trigger an H3_ID_ERROR, and these frames in other cases should trigger a H3_FRAME_UNEXPECTED error. However, it is expected to be exceedingly rare for any endpoint to send such frames without receiving a MAX_PUSH_ID frame, so the error code does not matter as much as actually closing the connection. Protected by FLAGS_quic_reloadable_flag_quic_error_on_http3_push. PiperOrigin-RevId: 370762371 Change-Id: I18d4d29e95faf9919858bada73ef0b5912afbd8b
QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects. QUICHE is only supported on little-endian platforms.
Code can be viewed in CodeSearch in Quiche and is imported into Chromium.