LCOV - code coverage report
Current view: top level - source/extensions/early_data - default_early_data_policy.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 5 9 55.6 %
Date: 2024-01-05 06:35:25 Functions: 3 4 75.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <memory>
       4             : 
       5             : #include "envoy/extensions/early_data/v3/default_early_data_policy.pb.h"
       6             : #include "envoy/registry/registry.h"
       7             : #include "envoy/router/router.h"
       8             : 
       9             : namespace Envoy {
      10             : namespace Router {
      11             : 
      12             : // The default behavior is either disallowing any early data request or allowing safe request over
      13             : // early data based on allow_safe_request.
      14             : class DefaultEarlyDataPolicy : public EarlyDataPolicy {
      15             : public:
      16             :   explicit DefaultEarlyDataPolicy(bool allow_safe_request)
      17        1711 :       : allow_safe_request_(allow_safe_request) {}
      18             : 
      19             :   bool allowsEarlyDataForRequest(const Http::RequestHeaderMap& request_headers) const override;
      20             : 
      21             : private:
      22             :   bool allow_safe_request_;
      23             : };
      24             : 
      25             : class DefaultEarlyDataPolicyFactory : public EarlyDataPolicyFactory {
      26             : public:
      27         190 :   std::string name() const override { return "envoy.route.early_data_policy.default"; }
      28             : 
      29           0 :   EarlyDataPolicyPtr createEarlyDataPolicy(const Protobuf::Message& /*config*/) override {
      30           0 :     return std::make_unique<DefaultEarlyDataPolicy>(
      31           0 :         /*allow_safe_request=*/false);
      32           0 :   }
      33             : 
      34          12 :   ProtobufTypes::MessagePtr createEmptyConfigProto() override {
      35          12 :     return std::make_unique<envoy::extensions::early_data::v3::DefaultEarlyDataPolicy>();
      36          12 :   }
      37             : };
      38             : 
      39             : DECLARE_FACTORY(DefaultEarlyDataPolicyFactory);
      40             : 
      41             : } // namespace Router
      42             : } // namespace Envoy

Generated by: LCOV version 1.15