http: turning up H2 websocket support (#4767)

The main difference between what we had and official nghttp2 support is lack of support for upgrade-with-bodies (on request or response path). Adjusted header munging, tests, and docs accordingly.

Risk Level: Low (changes code on a "hidden" code path)
Testing: updated tests, new unit tests
Docs Changes: updated
Release Notes: noted H2 websocket support
Fixes #1630

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>

Mirrored from https://github.com/envoyproxy/envoy @ 5b9de64f2858439b7c3b6ddabc08f50f4a752b90
pull/620/head
data-plane-api(CircleCI) 6 years ago
parent 5488445636
commit c7fce0b3b9
  1. 11
      envoy/api/v2/core/protocol.proto

@ -77,18 +77,7 @@ message Http2ProtocolOptions {
google.protobuf.UInt32Value initial_connection_window_size = 4
[(validate.rules).uint32 = {gte: 65535, lte: 2147483647}];
// [#not-implemented-hide:] Hiding until nghttp2 has native support.
//
// Allows proxying Websocket and other upgrades over H2 connect.
//
// THIS IS NOT SAFE TO USE IN PRODUCTION
//
// This currently works via disabling all HTTP sanity checks for H2 traffic
// which is a much larger hammer than we'd like to use. Eventually when
// https://github.com/nghttp2/nghttp2/issues/1181 is resolved, this will work
// with simply enabling CONNECT for H2. This may require some tweaks to the
// headers making pre-CONNECT-support proxying not backwards compatible with
// post-CONNECT-support proxying.
bool allow_connect = 5;
}

Loading…
Cancel
Save