Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/source/extensions/filters/network/direct_response/config.cc
Line
Count
Source (jump to first uncovered line)
1
#include "envoy/extensions/filters/network/direct_response/v3/config.pb.h"
2
#include "envoy/extensions/filters/network/direct_response/v3/config.pb.validate.h"
3
#include "envoy/registry/registry.h"
4
#include "envoy/server/filter_config.h"
5
6
#include "source/common/config/datasource.h"
7
#include "source/extensions/filters/network/common/factory_base.h"
8
#include "source/extensions/filters/network/direct_response/filter.h"
9
#include "source/extensions/filters/network/well_known_names.h"
10
11
namespace Envoy {
12
namespace Extensions {
13
namespace NetworkFilters {
14
namespace DirectResponse {
15
16
/**
17
 * Config registration for the direct response filter. @see NamedNetworkFilterConfigFactory.
18
 */
19
class DirectResponseConfigFactory
20
    : public Common::FactoryBase<envoy::extensions::filters::network::direct_response::v3::Config> {
21
public:
22
4
  DirectResponseConfigFactory() : FactoryBase(NetworkFilterNames::get().DirectResponse) {}
23
24
private:
25
  Network::FilterFactoryCb createFilterFactoryFromProtoTyped(
26
      const envoy::extensions::filters::network::direct_response::v3::Config& config,
27
0
      Server::Configuration::FactoryContext& context) override {
28
0
    return [config, &context](Network::FilterManager& filter_manager) -> void {
29
0
      auto content = Config::DataSource::read(config.response(), true, context.api());
30
0
      filter_manager.addReadFilter(std::make_shared<DirectResponseFilter>(content));
31
0
    };
32
0
  }
33
34
  bool isTerminalFilterByProtoTyped(
35
      const envoy::extensions::filters::network::direct_response::v3::Config&,
36
0
      Server::Configuration::ServerFactoryContext&) override {
37
0
    return true;
38
0
  }
39
};
40
41
/**
42
 * Static registration for the direct response filter. @see RegisterFactory.
43
 */
44
REGISTER_FACTORY(DirectResponseConfigFactory,
45
                 Server::Configuration::NamedNetworkFilterConfigFactory);
46
47
} // namespace DirectResponse
48
} // namespace NetworkFilters
49
} // namespace Extensions
50
} // namespace Envoy