From 5da5e8bad804fe37e2d04cc33d8df4f8f9a5e259 Mon Sep 17 00:00:00 2001 From: "data-plane-api(CircleCI)" Date: Thu, 12 Jul 2018 16:33:05 +0000 Subject: [PATCH] http: new style WebSockets, where headers and data are processed by the filter chain. (#3776) This is the complete HTTP/1.1 implementation of #3301, new style websockets. It should preserve existing behavior for "old style" websockets except for handling transfer-encoding requests (we all agree shouldn't happen) and responses (actually could happen and have been requested) better. Risk Level: High (should be self contained but still lots of core code changes) Testing: Thorough integration tests. unit tests for http1 codec Docs Changes: added websocket FAQ Release Notes: added Fixes #3301 (modulo timeouts not working, which will be addressed by #3654 or #1778) Signed-off-by: Alyssa Wilk Mirrored from https://github.com/envoyproxy/envoy @ 95c3e1343de707edee58defbec03ba87c9e969de --- .../v2/http_connection_manager.proto | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto b/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto index 7534144e..d4c8cd30 100644 --- a/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto +++ b/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto @@ -266,7 +266,6 @@ message HttpConnectionManager { // control. bool represent_ipv4_remote_address_as_ipv4_mapped_ipv6 = 20; - // [#not-implemented-hide:] // The configuration for HTTP upgrades. // For each upgrade type desired, an UpgradeConfig must be added. // @@ -275,6 +274,10 @@ message HttpConnectionManager { // The current implementation of upgrade headers does not handle // multi-valued upgrade headers. Support for multi-valued headers may be // added in the future if needed. + // + // .. warning:: + // The current implementation of upgrade headers does not work with HTTP/2 + // upstreams. message UpgradeConfig { // The case-insensitive name of this upgrade, e.g. "websocket". // For each upgrade type present in upgrade_configs, requests with @@ -286,7 +289,6 @@ message HttpConnectionManager { // HTTP connections will be used for this upgrade type. repeated HttpFilter filters = 2; }; - // [#not-implemented-hide:] repeated UpgradeConfig upgrade_configs = 23; }