1
#pragma once
2

            
3
#include "envoy/registry/registry.h"
4
#include "envoy/server/transport_socket_config.h"
5

            
6
#include "source/extensions/transport_sockets/tls/config.h"
7

            
8
namespace Envoy {
9
namespace Extensions {
10
namespace TransportSockets {
11
namespace Tls {
12

            
13
class DownstreamSslSocketFactory
14
    : public Server::Configuration::DownstreamTransportSocketConfigFactory,
15
      public SslSocketConfigFactory {
16
public:
17
  absl::StatusOr<Network::DownstreamTransportSocketFactoryPtr>
18
  createTransportSocketFactory(const Protobuf::Message& config,
19
                               Server::Configuration::TransportSocketFactoryContext& context,
20
                               const std::vector<std::string>& server_names) override;
21
  ProtobufTypes::MessagePtr createEmptyConfigProto() override;
22
};
23

            
24
DECLARE_FACTORY(DownstreamSslSocketFactory);
25

            
26
} // namespace Tls
27
} // namespace TransportSockets
28
} // namespace Extensions
29
} // namespace Envoy