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 UpstreamSslSocketFactory : public Server::Configuration::UpstreamTransportSocketConfigFactory,
14
                                 public SslSocketConfigFactory {
15
public:
16
  absl::StatusOr<Network::UpstreamTransportSocketFactoryPtr> createTransportSocketFactory(
17
      const Protobuf::Message& config,
18
      Server::Configuration::TransportSocketFactoryContext& context) override;
19
  ProtobufTypes::MessagePtr createEmptyConfigProto() override;
20
};
21

            
22
DECLARE_FACTORY(UpstreamSslSocketFactory);
23

            
24
} // namespace Tls
25
} // namespace TransportSockets
26
} // namespace Extensions
27
} // namespace Envoy