Coverage Report

Created: 2024-09-19 09:45

/proc/self/cwd/source/server/regex_engine.cc
Line
Count
Source
1
#include "source/server/regex_engine.h"
2
3
#include "source/common/common/regex.h"
4
#include "source/common/config/utility.h"
5
6
namespace Envoy {
7
namespace Server {
8
9
Regex::EnginePtr createRegexEngine(const envoy::config::bootstrap::v3::Bootstrap& bootstrap,
10
                                   ProtobufMessage::ValidationVisitor& validation_visitor,
11
9.66k
                                   Configuration::ServerFactoryContext& server_factory_context) {
12
9.66k
  Regex::EnginePtr regex_engine;
13
9.66k
  if (bootstrap.has_default_regex_engine()) {
14
122
    const auto& default_regex_engine = bootstrap.default_regex_engine();
15
122
    Regex::EngineFactory& factory =
16
122
        Config::Utility::getAndCheckFactory<Regex::EngineFactory>(default_regex_engine);
17
122
    auto config = Config::Utility::translateAnyToFactoryConfig(default_regex_engine.typed_config(),
18
122
                                                               validation_visitor, factory);
19
122
    regex_engine = factory.createEngine(*config, server_factory_context);
20
9.54k
  } else {
21
9.54k
    regex_engine = std::make_shared<Regex::GoogleReEngine>();
22
9.54k
  }
23
9.66k
  return regex_engine;
24
9.66k
}
25
26
} // namespace Server
27
} // namespace Envoy