Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
3 changes: 3 additions & 0 deletions source/extensions/filters/http/kill_request/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ load(
"envoy_cc_extension",
"envoy_cc_library",
"envoy_extension_package",
"envoy_package",
)

licenses(["notice"]) # Apache 2

envoy_package()
Comment thread
pradeepcrao marked this conversation as resolved.
Outdated

envoy_extension_package(enabled_default = False)

envoy_cc_library(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
#include "extensions/filters/http/kill_request/kill_request_config.h"

#include "envoy/extensions/filters/http/kill_request/v3/kill_request.pb.h"
#include "envoy/extensions/filters/http/kill_request/v3/kill_request.pb.validate.h"
#include "envoy/registry/registry.h"

#include "extensions/filters/http/kill_request/kill_request_config.h"
#include "extensions/filters/http/kill_request/kill_request_filter.h"

namespace Envoy {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#include "extensions/filters/http/kill_request/kill_request_filter.h"

#include <csignal>
#include <string>

Expand All @@ -8,6 +6,7 @@

#include "common/protobuf/utility.h"

#include "extensions/filters/http/kill_request/kill_request_filter.h"
#include "extensions/filters/http/well_known_names.h"

namespace Envoy {
Expand Down Expand Up @@ -61,8 +60,7 @@ Http::FilterHeadersStatus KillRequestFilter::decodeHeaders(Http::RequestHeaderMa

if (per_route_kill_settings) {
is_correct_direction = per_route_kill_settings->getDirection() == KillRequest::REQUEST;
envoy::type::v3::FractionalPercent probability = per_route_kill_settings->getProbability();
kill_request_.set_allocated_probability(&probability);
kill_request_.mutable_probability()->CopyFrom(per_route_kill_settings->getProbability());
Comment thread
pradeepcrao marked this conversation as resolved.
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,24 @@ TEST_F(KillRequestFilterTest, KillsBasedOnDirection) {
"KillRequestFilter is crashing Envoy!!!");
}

TEST_F(KillRequestFilterTest, PerRouteKillSettingFound) {
envoy::extensions::filters::http::kill_request::v3::KillRequest kill_request;
setUpTest(kill_request);
request_headers_.addCopy("x-envoy-kill-request", "true");

envoy::extensions::filters::http::kill_request::v3::KillRequest route_level_kill_request;
// Set probability to zero to make isKillRequestEnabled return false
route_level_kill_request.mutable_probability()->set_numerator(0);
route_level_kill_request.set_kill_request_header("x-custom-kill-request");

// Return valid kill setting on the REQUEST direction
KillSettings kill_settings = KillSettings(route_level_kill_request);
Comment thread
pradeepcrao marked this conversation as resolved.
Outdated
ON_CALL(decoder_filter_callbacks_.route_->route_entry_,
perFilterConfig(Extensions::HttpFilters::HttpFilterNames::get().KillRequest))
.WillByDefault(Return(&kill_settings));
ASSERT_EQ(filter_->decodeHeaders(request_headers_, false), Http::FilterHeadersStatus::Continue);
}

} // namespace
} // namespace KillRequest
} // namespace HttpFilters
Expand Down