| commit | 9af10d5cc822d74d7aea40f7b0f9aeaf786eb728 | [log] [tgz] |
|---|---|---|
| author | diannahu <diannahu@google.com> | Thu Apr 07 15:36:51 2022 -0700 |
| committer | Copybara-Service <copybara-worker@google.com> | Thu Apr 07 15:37:37 2022 -0700 |
| tree | 97c4d6fbeba9070d328ee5d6d847784d567646ff | |
| parent | 077951a0e68e7ecdee2693c112836bd34ff5e5aa [diff] |
Update oghttp2 to close streams above a received GOAWAY's last_stream_id. This CL causes oghttp2 to respond to the receipt of a GOAWAY by: - Closing active streams in its stream map above the GOAWAY's last_stream_id. - Avoiding sending frames with stream ID values above the last_stream_id. These two changes handle cases where request HEADERS (or other frames for a stream) have already been enqueued at the time a GOAWAY is received, while also preventing subsequent enqueues for these active streams (by closing them). This CL does not handle the cases of new or pending streams, i.e., does not prevent subsequent requests or the start of requests that have been queued as pending. These cases will be handled in follow-up cl/439616811. This change increases oghttp2 parity with nghttp2. PiperOrigin-RevId: 440217657
QUICHE stands for QUIC, Http, Etc. It is Google‘s production-ready implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools. It powers Google’s servers, Chromium, Envoy, and other projects. It is actively developed and maintained.
There are two public QUICHE repositories. Either one may be used by embedders, as they are automatically kept in sync:
To embed QUICHE in your project, platform APIs need to be implemented and build files need to be created. Note that it is on the QUICHE team's roadmap to include default implementation for all platform APIs and to open-source build files. In the meanwhile, take a look at open source embedders like Chromium and Envoy to get started:
To contribute to QUICHE, follow instructions at CONTRIBUTING.md.
QUICHE is only supported on little-endian platforms.