gfe-relnote:  Refactor QuicConnectionCloseFrame.  Not protected.

QuicConnectionCloseFrame::quic_error_code should not be accessed when using IETF
QUIC, however, as it is a public member, this is not enforced.  When read, it
returns the on-the-wire error code (transport or application) cast into a
QuicErrorCode.  This is bad.

Since public unions cannot enforce restrictions on access, I propose to remove
the union for clarity.  The price paid is type: wire_error_code will now be
uint64_t even for Google QUIC error codes which could be QuicErrorCode, and for
IETF QUIC transport errors, which could be QuicIetfTransportErrorCodes.

Also rename extracted_error_code to quic_error_code for clarity, because for
sent frames, it is not extracted.

This refactor is necessary for modifying QuicErrorCodeToTransportErrorCode() to
return IETF wire error codes.

When using Google QUIC, old fields |quic_error_code| and |extracted_error_code|
and new fields |wire_error_code| and |quic_error_code| should always have the
same value, therefore this refactor should not introduce any functional change.

PiperOrigin-RevId: 304902883
Change-Id: I586a92609fb8a6186310f6585c8d29ee1d60af4f
11 files changed
tree: 8328f00547bff968398675f0f77c53ecda5c4b8a
  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.