Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/root/version_history/current.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Removed Config or Runtime
*Normally occurs at the end of the* :ref:`deprecation period <deprecated>`

* compression: removed ``envoy.reloadable_features.enable_compression_without_content_length_header`` runtime guard and legacy code paths.
* http: removed ``envoy.reloadable_features.add_and_validate_scheme_header`` and legacy code paths.
* http: removed ``envoy.reloadable_features.dont_add_content_length_for_bodiless_requests deprecation`` and legacy code paths.
* http: removed ``envoy.reloadable_features.return_502_for_upstream_protocol_errors``. Envoy will always return 502 code upon encountering upstream protocol error.
* http: removed ``envoy.reloadable_features.treat_upstream_connect_timeout_as_connect_failure`` and legacy code paths.
Expand Down
3 changes: 1 addition & 2 deletions source/common/http/conn_manager_utility.cc
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,7 @@ ConnectionManagerUtility::MutateRequestHeadersResult ConnectionManagerUtility::m
// If :scheme is not set, sets :scheme based on X-Forwarded-Proto if a valid scheme,
// else encryption level.
// X-Forwarded-Proto and :scheme may still differ if different values are sent from downstream.
if (!request_headers.Scheme() &&
Runtime::runtimeFeatureEnabled("envoy.reloadable_features.add_and_validate_scheme_header")) {
if (!request_headers.Scheme()) {
request_headers.setScheme(
getScheme(request_headers.getForwardedProtoValue(), connection.ssl() != nullptr));
}
Expand Down
3 changes: 1 addition & 2 deletions source/common/http/http1/codec_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1022,8 +1022,7 @@ Status ServerConnectionImpl::handlePath(RequestHeaderMap& headers, absl::string_
headers.setHost(absolute_url.hostAndPort());
// Add the scheme and validate to ensure no https://
// requests are accepted over unencrypted connections by front-line Envoys.
if (!is_connect &&
Runtime::runtimeFeatureEnabled("envoy.reloadable_features.add_and_validate_scheme_header")) {
if (!is_connect) {
headers.setScheme(absolute_url.scheme());
if (!HeaderUtility::schemeIsValid(absolute_url.scheme())) {
RETURN_IF_ERROR(sendProtocolError(Http1ResponseCodeDetails::get().InvalidScheme));
Expand Down
3 changes: 2 additions & 1 deletion source/common/runtime/runtime_features.cc
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ uint64_t getInteger(absl::string_view feature, uint64_t default_value) {
// If issues are found that require a runtime feature to be disabled, it should be reported
// ASAP by filing a bug on github. Overriding non-buggy code is strongly discouraged to avoid the
// problem of the bugs being found after the old code path has been removed.
// clang-format off
constexpr const char* runtime_features[] = {
// Enabled
"envoy.reloadable_features.test_feature_true",
// Begin alphabetically sorted section.
"envoy.reloadable_features.add_and_validate_scheme_header",
"envoy.reloadable_features.allow_response_for_timeout",
"envoy.reloadable_features.check_unsupported_typed_per_filter_config",
"envoy.reloadable_features.conn_pool_delete_when_idle",
Expand Down Expand Up @@ -100,6 +100,7 @@ constexpr const char* runtime_features[] = {
"envoy.reloadable_features.sanitize_http_header_referer",
"envoy.reloadable_features.skip_dispatching_frames_for_closed_connection",
};
// clang-format on

// This is a section for officially sanctioned runtime features which are too
// high risk to be enabled by default. Examples where we have opted to land
Expand Down