Do not call HttpDecoder::ProcessInput after error. This CL changes API contract and call sites. Without the change to the call sites, //gfe/gfe2/test_tools/fuzzing:gfe_quic_fuzzer would crash on the new DCHECK_NE(QUIC_NO_ERROR, error_). This is because even if Visitor::OnError() closes the connection, the sequencer might have more data that QuicSpdyStream is eager to read and feed to HttpDecoder::ProcessInput(). Currently HttpDecoder::ProcessInput() ignores input upon error. However, I'm going to modify the call sites to use PeekRegion() instead of PrefetchNextRegion() and spin until decoding is paused by a visitor method or no new region is there to peek at. Since HttpDecoder::ProcessInput() returns 0 if called after an error, this would just result in PeekRegion() being called with the same offset, returning true, and the cycle spinning in an infinite loop. gfe-relnote: n/a, change to QUIC v99-only code path. PiperOrigin-RevId: 255168809 Change-Id: I6b6f0b0986f2f6bec0a8eedb695dc91943d57bf2
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.