diff --git a/source/common/http/filter/lua/lua_filter.cc b/source/common/http/filter/lua/lua_filter.cc index f6ca604fa5891..0e3af6dc71116 100644 --- a/source/common/http/filter/lua/lua_filter.cc +++ b/source/common/http/filter/lua/lua_filter.cc @@ -117,8 +117,8 @@ int StreamHandleWrapper::luaRespond(lua_State* state) { uint64_t status; if (headers->Status() == nullptr || !StringUtil::atoul(headers->Status()->value().c_str(), status) || status < 200 || - status >= 500) { - luaL_error(state, ":status must be between 100-599"); + status >= 600) { + luaL_error(state, ":status must be between 200-599"); } Buffer::InstancePtr body; diff --git a/test/common/http/filter/lua/lua_filter_test.cc b/test/common/http/filter/lua/lua_filter_test.cc index 48257afc85a71..b54736e7de5c7 100644 --- a/test/common/http/filter/lua/lua_filter_test.cc +++ b/test/common/http/filter/lua/lua_filter_test.cc @@ -1171,7 +1171,7 @@ TEST_F(LuaHttpFilterTest, ImmediateResponse) { const std::string SCRIPT{R"EOF( function envoy_on_request(request_handle) request_handle:respond( - {[":status"] = "403"}, + {[":status"] = "503"}, "nope") -- Should not run @@ -1184,7 +1184,7 @@ TEST_F(LuaHttpFilterTest, ImmediateResponse) { setup(SCRIPT); TestHeaderMapImpl request_headers{{":path", "/"}}; - TestHeaderMapImpl expected_headers{{":status", "403"}, {"content-length", "4"}}; + TestHeaderMapImpl expected_headers{{":status", "503"}, {"content-length", "4"}}; EXPECT_CALL(decoder_callbacks_, encodeHeaders_(HeaderMapEqualRef(&expected_headers), false)); EXPECT_CALL(decoder_callbacks_, encodeData(_, true)); EXPECT_EQ(FilterHeadersStatus::StopIteration, filter_->decodeHeaders(request_headers, false)); @@ -1205,7 +1205,7 @@ TEST_F(LuaHttpFilterTest, ImmediateResponseBadStatus) { TestHeaderMapImpl request_headers{{":path", "/"}}; EXPECT_CALL(*filter_, scriptLog(spdlog::level::err, - StrEq("[string \"...\"]:3: :status must be between 100-599"))); + StrEq("[string \"...\"]:3: :status must be between 200-599"))); EXPECT_EQ(FilterHeadersStatus::Continue, filter_->decodeHeaders(request_headers, false)); }