LCOV - code coverage report
Current view: top level - source/extensions/transport_sockets/starttls - config.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 4 11 36.4 %
Date: 2024-01-05 06:35:25 Functions: 4 8 50.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/extensions/transport_sockets/starttls/v3/starttls.pb.h"
       4             : #include "envoy/registry/registry.h"
       5             : #include "envoy/server/transport_socket_config.h"
       6             : 
       7             : #include "source/common/config/utility.h"
       8             : 
       9             : namespace Envoy {
      10             : namespace Extensions {
      11             : namespace TransportSockets {
      12             : namespace StartTls {
      13             : 
      14             : template <typename ConfigFactory, typename ConfigMessage>
      15             : class BaseStartTlsSocketFactory : public ConfigFactory {
      16             : public:
      17          84 :   std::string name() const override { return "envoy.transport_sockets.starttls"; }
      18             : 
      19           4 :   ProtobufTypes::MessagePtr createEmptyConfigProto() override {
      20           4 :     return std::make_unique<ConfigMessage>();
      21           4 :   }
      22             : 
      23             : protected:
      24           0 :   ConfigFactory& rawSocketConfigFactory() {
      25           0 :     return Config::Utility::getAndCheckFactoryByName<ConfigFactory>(
      26           0 :         "envoy.transport_sockets.raw_buffer");
      27           0 :   }
      28             : 
      29           0 :   ConfigFactory& tlsSocketConfigFactory() {
      30           0 :     return Config::Utility::getAndCheckFactoryByName<ConfigFactory>("envoy.transport_sockets.tls");
      31           0 :   }
      32             : };
      33             : 
      34             : class DownstreamStartTlsSocketFactory
      35             :     : public BaseStartTlsSocketFactory<
      36             :           Server::Configuration::DownstreamTransportSocketConfigFactory,
      37             :           envoy::extensions::transport_sockets::starttls::v3::StartTlsConfig> {
      38             : public:
      39             :   Network::DownstreamTransportSocketFactoryPtr
      40             :   createTransportSocketFactory(const Protobuf::Message& config,
      41             :                                Server::Configuration::TransportSocketFactoryContext& context,
      42             :                                const std::vector<std::string>& server_names) override;
      43             : };
      44             : 
      45             : class UpstreamStartTlsSocketFactory
      46             :     : public BaseStartTlsSocketFactory<
      47             :           Server::Configuration::UpstreamTransportSocketConfigFactory,
      48             :           envoy::extensions::transport_sockets::starttls::v3::UpstreamStartTlsConfig> {
      49             : public:
      50             :   Network::UpstreamTransportSocketFactoryPtr createTransportSocketFactory(
      51             :       const Protobuf::Message& config,
      52             :       Server::Configuration::TransportSocketFactoryContext& context) override;
      53             : };
      54             : 
      55             : DECLARE_FACTORY(DownstreamStartTlsSocketFactory);
      56             : DECLARE_FACTORY(UpstreamStartTlsSocketFactory);
      57             : 
      58             : } // namespace StartTls
      59             : } // namespace TransportSockets
      60             : } // namespace Extensions
      61             : } // namespace Envoy

Generated by: LCOV version 1.15