commit | 4b5a68aaee041f74ef8317f75183d267a4774eb1 | [log] [tgz] |
---|---|---|
author | dschinazi <dschinazi@google.com> | Thu Aug 15 15:45:36 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Aug 16 04:55:51 2019 -0700 |
tree | 256b25e50991575885fce7bc23172e8d54d97c94 | |
parent | 748cc738ca5d66168e23dedd756bbcb66066c2f9 [diff] |
Do not queue coalesced undecryptable packets twice This CL adds QuicFramerVisitorInterface::OnUndecryptablePacket and uses it to send undecryptable packets from QuicFramer to QuicConnection, instead of the previous mechanism which relied on QuicFramer::ProcessPacket returning QUIC_DECRYPTION_FAILURE. The new mechanism has the following advantages: 1) It only sends the current packet, without any subsequent coalesced packets 2) It knows if the decryption failed due to a missing key, which allows us to avoid buffering packets that we know we will never be able to decrypt This mechanism is enabled for versions that KnowsWhichDecrypterToUse() (which are v47+ || TLS, none of which are currently enabled) and when the new flag quic_framer_uses_undecryptable_upcall is true - the intent being to enable this for all versions once the flag protection process is complete. This CL also adds QuicDataReader::FullPayload which is required to extract only this packet without further coalesced packets, and associated test. gfe-relnote: do not queue coalesced undecryptable packets twice, protected by disabled flag gfe2_restart_flag_quic_framer_uses_undecryptable_upcall PiperOrigin-RevId: 263658152 Change-Id: I66aca2138e353306a5cf4fa9ec259680f4115890
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.
The code is currently in process of being moved from https://cs.chromium.org/chromium/src/net/third_party/ into this repository. Please excuse our appearance while we're under construction.