Do not clip error codes larger than QUIC_LAST_ERROR.

When an incoming Google QUIC CONNECTION_CLOSE or GOAWAY frame has an error code
larger than QUIC_LAST_ERROR, preserve the value instead of replacing it with
QUIC_LAST_ERROR.  This will make debugging of newly added error codes emitted by
the server received by older versions of Chrome significantly little less
confusing.

IETF QUIC behavior is not affected:

IETF CONNECTION_CLOSE can also carry a QuicErrorCode value in its description
which is parsed out on the receiving side, but that did not suffer from being
clipped to QUIC_LAST_ERROR.  This CL adds a test for that behavior.

IETF GOAWAY frame does not carry an error code.

Protected by FLAGS_quic_reloadable_flag_quic_do_not_clip_received_error_code.

PiperOrigin-RevId: 334160593
Change-Id: Ic830254c0dcb1cb6ca6687bae7a699df21b7e0e3
2 files changed
tree: fb44b3d5b1c20d2d4997ac5b22b05b0885c4f09e
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

QUICHE

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.