MCPcopy Create free account
hub / github.com/ByConity/ByConity / headersFilter

Function headersFilter

src/Server/HTTPHandlerRequestFilter.h:78–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

76}
77
78static inline auto headersFilter(Poco::Util::AbstractConfiguration & config, const std::string & prefix)
79{
80 std::unordered_map<String, std::pair<String, CompiledRegexPtr>> headers_expression;
81 Poco::Util::AbstractConfiguration::Keys headers_name;
82 config.keys(prefix, headers_name);
83
84 for (const auto & header_name : headers_name)
85 {
86 const auto & expression = getExpression(config.getString(prefix + "." + header_name));
87 checkExpression("", expression); /// Check expression syntax is correct
88 headers_expression.emplace(std::make_pair(header_name, expression));
89 }
90
91 return [headers_expression](const HTTPServerRequest & request)
92 {
93 for (const auto & [header_name, header_expression] : headers_expression)
94 {
95 const auto & header_value = request.get(header_name, "");
96 if (!checkExpression(StringRef(header_value.data(), header_value.size()), header_expression))
97 return false;
98 }
99
100 return true;
101 };
102}
103
104}

Callers 1

addFiltersFromConfigMethod · 0.85

Calls 9

getExpressionFunction · 0.85
checkExpressionFunction · 0.85
StringRefClass · 0.85
keysMethod · 0.45
getStringMethod · 0.45
emplaceMethod · 0.45
getMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected