LCOV - code coverage report
Current view: top level - source/extensions/matching/network/common - inputs.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 21 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 2 0.0 %

          Line data    Source code
       1             : #include "source/extensions/matching/network/common/inputs.h"
       2             : 
       3             : #include "envoy/http/filter.h"
       4             : #include "envoy/registry/registry.h"
       5             : 
       6             : #include "absl/strings/str_cat.h"
       7             : 
       8             : namespace Envoy {
       9             : namespace Network {
      10             : namespace Matching {
      11             : 
      12           0 : Matcher::DataInputGetResult TransportProtocolInput::get(const MatchingData& data) const {
      13           0 :   const auto transport_protocol = data.socket().detectedTransportProtocol();
      14           0 :   if (!transport_protocol.empty()) {
      15           0 :     return {Matcher::DataInputGetResult::DataAvailability::AllDataAvailable,
      16           0 :             std::string(transport_protocol)};
      17           0 :   }
      18           0 :   return {Matcher::DataInputGetResult::DataAvailability::AllDataAvailable, absl::monostate()};
      19           0 : }
      20             : 
      21           0 : Matcher::DataInputGetResult FilterStateInput::get(const MatchingData& data) const {
      22           0 :   const auto* filter_state_object =
      23           0 :       data.filterState().getDataReadOnly<StreamInfo::FilterState::Object>(filter_state_key_);
      24             : 
      25           0 :   if (filter_state_object != nullptr) {
      26           0 :     auto str = filter_state_object->serializeAsString();
      27           0 :     if (str.has_value()) {
      28           0 :       return {Matcher::DataInputGetResult::DataAvailability::AllDataAvailable, str.value()};
      29           0 :     } else {
      30           0 :       return {Matcher::DataInputGetResult::DataAvailability::AllDataAvailable, absl::monostate()};
      31           0 :     }
      32           0 :   }
      33             : 
      34           0 :   return {Matcher::DataInputGetResult::DataAvailability::AllDataAvailable, absl::monostate()};
      35           0 : }
      36             : 
      37             : class DestinationIPInputFactory : public DestinationIPInputBaseFactory<MatchingData> {};
      38             : class UdpDestinationIPInputFactory : public DestinationIPInputBaseFactory<UdpMatchingData> {};
      39             : class HttpDestinationIPInputFactory : public DestinationIPInputBaseFactory<Http::HttpMatchingData> {
      40             : };
      41             : REGISTER_FACTORY(DestinationIPInputFactory, Matcher::DataInputFactory<MatchingData>);
      42             : REGISTER_FACTORY(UdpDestinationIPInputFactory, Matcher::DataInputFactory<UdpMatchingData>);
      43             : REGISTER_FACTORY(HttpDestinationIPInputFactory, Matcher::DataInputFactory<Http::HttpMatchingData>);
      44             : 
      45             : class DestinationPortInputFactory : public DestinationPortInputBaseFactory<MatchingData> {};
      46             : class UdpDestinationPortInputFactory : public DestinationPortInputBaseFactory<UdpMatchingData> {};
      47             : class HttpDestinationPortInputFactory
      48             :     : public DestinationPortInputBaseFactory<Http::HttpMatchingData> {};
      49             : REGISTER_FACTORY(DestinationPortInputFactory, Matcher::DataInputFactory<MatchingData>);
      50             : REGISTER_FACTORY(UdpDestinationPortInputFactory, Matcher::DataInputFactory<UdpMatchingData>);
      51             : REGISTER_FACTORY(HttpDestinationPortInputFactory,
      52             :                  Matcher::DataInputFactory<Http::HttpMatchingData>);
      53             : 
      54             : class SourceIPInputFactory : public SourceIPInputBaseFactory<MatchingData> {};
      55             : class UdpSourceIPInputFactory : public SourceIPInputBaseFactory<UdpMatchingData> {};
      56             : class HttpSourceIPInputFactory : public SourceIPInputBaseFactory<Http::HttpMatchingData> {};
      57             : REGISTER_FACTORY(SourceIPInputFactory, Matcher::DataInputFactory<MatchingData>);
      58             : REGISTER_FACTORY(UdpSourceIPInputFactory, Matcher::DataInputFactory<UdpMatchingData>);
      59             : REGISTER_FACTORY(HttpSourceIPInputFactory, Matcher::DataInputFactory<Http::HttpMatchingData>);
      60             : 
      61             : class SourcePortInputFactory : public SourcePortInputBaseFactory<MatchingData> {};
      62             : class UdpSourcePortInputFactory : public SourcePortInputBaseFactory<UdpMatchingData> {};
      63             : class HttpSourcePortInputFactory : public SourcePortInputBaseFactory<Http::HttpMatchingData> {};
      64             : REGISTER_FACTORY(SourcePortInputFactory, Matcher::DataInputFactory<MatchingData>);
      65             : REGISTER_FACTORY(UdpSourcePortInputFactory, Matcher::DataInputFactory<UdpMatchingData>);
      66             : REGISTER_FACTORY(HttpSourcePortInputFactory, Matcher::DataInputFactory<Http::HttpMatchingData>);
      67             : 
      68             : class DirectSourceIPInputFactory : public DirectSourceIPInputBaseFactory<MatchingData> {};
      69             : class HttpDirectSourceIPInputFactory
      70             :     : public DirectSourceIPInputBaseFactory<Http::HttpMatchingData> {};
      71             : REGISTER_FACTORY(DirectSourceIPInputFactory, Matcher::DataInputFactory<MatchingData>);
      72             : REGISTER_FACTORY(HttpDirectSourceIPInputFactory, Matcher::DataInputFactory<Http::HttpMatchingData>);
      73             : 
      74             : class ServerNameInputFactory : public ServerNameInputBaseFactory<MatchingData> {};
      75             : class HttpServerNameInputFactory : public ServerNameInputBaseFactory<Http::HttpMatchingData> {};
      76             : REGISTER_FACTORY(ServerNameInputFactory, Matcher::DataInputFactory<MatchingData>);
      77             : REGISTER_FACTORY(HttpServerNameInputFactory, Matcher::DataInputFactory<Http::HttpMatchingData>);
      78             : 
      79             : class SourceTypeInputFactory : public SourceTypeInputBaseFactory<MatchingData> {};
      80             : class HttpSourceTypeInputFactory : public SourceTypeInputBaseFactory<Http::HttpMatchingData> {};
      81             : REGISTER_FACTORY(SourceTypeInputFactory, Matcher::DataInputFactory<MatchingData>);
      82             : REGISTER_FACTORY(HttpSourceTypeInputFactory, Matcher::DataInputFactory<Http::HttpMatchingData>);
      83             : 
      84             : REGISTER_FACTORY(TransportProtocolInputFactory, Matcher::DataInputFactory<MatchingData>);
      85             : REGISTER_FACTORY(FilterStateInputFactory, Matcher::DataInputFactory<MatchingData>);
      86             : 
      87             : } // namespace Matching
      88             : } // namespace Network
      89             : } // namespace Envoy

Generated by: LCOV version 1.15