Skip to content
Open
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 envoy/access_log/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ envoy_cc_library(
"//envoy/formatter:substitution_formatter_interface",
"//envoy/server:factory_context_interface",
"//source/common/protobuf",
"@abseil-cpp//absl/status:statusor",
],
)
7 changes: 5 additions & 2 deletions envoy/access_log/access_log_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

#include "source/common/protobuf/protobuf.h"

#include "absl/status/statusor.h"

namespace Envoy {
namespace AccessLog {

Expand All @@ -27,8 +29,9 @@ class ExtensionFilterFactory : public Config::TypedFactory {
* @param context supplies the factory context.
* @return an instance of extension filter implementation from a config proto.
*/
virtual FilterPtr createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) PURE;
virtual absl::StatusOr<FilterPtr>
createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) PURE;

std::string category() const override { return "envoy.access_loggers.extension_filters"; }
};
Expand Down
3 changes: 2 additions & 1 deletion source/common/access_log/access_log_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ FilterPtr FilterFactory::fromProto(const envoy::config::accesslog::v3::AccessLog
{
auto& factory =
Config::Utility::getAndCheckFactory<ExtensionFilterFactory>(config.extension_filter());
return factory.createFilter(config.extension_filter(), context);
return THROW_OR_RETURN_VALUE(factory.createFilter(config.extension_filter(), context),
FilterPtr);
}
case envoy::config::accesslog::v3::AccessLogFilter::FilterSpecifierCase::FILTER_SPECIFIER_NOT_SET:
PANIC_DUE_TO_PROTO_UNSET;
Expand Down
2 changes: 1 addition & 1 deletion source/extensions/access_loggers/filters/cel/config.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace AccessLoggers {
namespace Filters {
namespace CEL {

Envoy::AccessLog::FilterPtr CELAccessLogExtensionFilterFactory::createFilter(
absl::StatusOr<Envoy::AccessLog::FilterPtr> CELAccessLogExtensionFilterFactory::createFilter(
const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) {

Expand Down
2 changes: 1 addition & 1 deletion source/extensions/access_loggers/filters/cel/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ namespace CEL {

class CELAccessLogExtensionFilterFactory : public Envoy::AccessLog::ExtensionFilterFactory {
public:
Envoy::AccessLog::FilterPtr
absl::StatusOr<Envoy::AccessLog::FilterPtr>
createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) override;
ProtobufTypes::MessagePtr createEmptyConfigProto() override;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace AccessLoggers {
namespace Filters {
namespace ProcessRateLimit {

AccessLog::FilterPtr ProcessRateLimitFilterFactory::createFilter(
absl::StatusOr<AccessLog::FilterPtr> ProcessRateLimitFilterFactory::createFilter(
const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) {
auto factory_config =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ namespace ProcessRateLimit {

class ProcessRateLimitFilterFactory : public AccessLog::ExtensionFilterFactory {
public:
AccessLog::FilterPtr createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) override;
absl::StatusOr<AccessLog::FilterPtr>
createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) override;
ProtobufTypes::MessagePtr createEmptyConfigProto() override;
std::string name() const override {
return "envoy.access_loggers.extension_filters.process_ratelimit";
Expand Down
10 changes: 6 additions & 4 deletions test/common/access_log/access_log_impl_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1630,8 +1630,9 @@ class TestHeaderFilterFactory : public ExtensionFilterFactory {
public:
~TestHeaderFilterFactory() override = default;

FilterPtr createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) override {
absl::StatusOr<FilterPtr>
createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) override {
auto factory_config = Config::Utility::translateToFactoryConfig(
config, context.messageValidationVisitor(), *this);
const auto& header_config =
Expand Down Expand Up @@ -1725,8 +1726,9 @@ class SampleExtensionFilterFactory : public ExtensionFilterFactory {
public:
~SampleExtensionFilterFactory() override = default;

FilterPtr createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) override {
absl::StatusOr<FilterPtr>
createFilter(const envoy::config::accesslog::v3::ExtensionFilter& config,
Server::Configuration::GenericFactoryContext& context) override {
auto factory_config = Config::Utility::translateToFactoryConfig(
config, context.messageValidationVisitor(), *this);

Expand Down
5 changes: 3 additions & 2 deletions test/extensions/filters/network/generic_proxy/fake_codec.h
Original file line number Diff line number Diff line change
Expand Up @@ -439,8 +439,9 @@ class FakeAccessLogExtensionFilter : public AccessLog::Filter {
class FakeAccessLogExtensionFilterFactory : public AccessLog::ExtensionFilterFactory {
public:
// AccessLogFilterFactory
AccessLog::FilterPtr createFilter(const envoy::config::accesslog::v3::ExtensionFilter&,
Server::Configuration::GenericFactoryContext&) override {
absl::StatusOr<AccessLog::FilterPtr>
createFilter(const envoy::config::accesslog::v3::ExtensionFilter&,
Server::Configuration::GenericFactoryContext&) override {
return std::make_unique<FakeAccessLogExtensionFilter>();
}

Expand Down
1 change: 1 addition & 0 deletions tools/code_format/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ paths:
# valid situation identified so far is template functions used for config
# processing.
- envoy/common/exception.h
- source/common/access_log/access_log_impl.cc
- source/common/filter/config_discovery_impl.h
- source/common/config/utility.h
- source/common/matcher/matcher.h
Expand Down
Loading