Line data Source code
1 : #include "source/extensions/transport_sockets/http_11_proxy/config.h" 2 : 3 : #include "envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.pb.h" 4 : #include "envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.pb.validate.h" 5 : #include "envoy/registry/registry.h" 6 : 7 : #include "source/common/config/utility.h" 8 : #include "source/extensions/transport_sockets/http_11_proxy/connect.h" 9 : 10 : namespace Envoy { 11 : namespace Extensions { 12 : namespace TransportSockets { 13 : namespace Http11Connect { 14 : 15 : Network::UpstreamTransportSocketFactoryPtr 16 : UpstreamHttp11ConnectSocketConfigFactory::createTransportSocketFactory( 17 : const Protobuf::Message& message, 18 0 : Server::Configuration::TransportSocketFactoryContext& context) { 19 0 : const auto& outer_config = MessageUtil::downcastAndValidate< 20 0 : const envoy::extensions::transport_sockets::http_11_proxy::v3::Http11ProxyUpstreamTransport&>( 21 0 : message, context.messageValidationVisitor()); 22 0 : auto& inner_config_factory = Config::Utility::getAndCheckFactory< 23 0 : Server::Configuration::UpstreamTransportSocketConfigFactory>(outer_config.transport_socket()); 24 0 : ProtobufTypes::MessagePtr inner_factory_config = Config::Utility::translateToFactoryConfig( 25 0 : outer_config.transport_socket(), context.messageValidationVisitor(), inner_config_factory); 26 0 : auto inner_transport_factory = 27 0 : inner_config_factory.createTransportSocketFactory(*inner_factory_config, context); 28 0 : return std::make_unique<UpstreamHttp11ConnectSocketFactory>(std::move(inner_transport_factory)); 29 0 : } 30 : 31 1 : ProtobufTypes::MessagePtr UpstreamHttp11ConnectSocketConfigFactory::createEmptyConfigProto() { 32 1 : return std::make_unique< 33 1 : envoy::extensions::transport_sockets::http_11_proxy::v3::Http11ProxyUpstreamTransport>(); 34 1 : } 35 : 36 : REGISTER_FACTORY(UpstreamHttp11ConnectSocketConfigFactory, 37 : Server::Configuration::UpstreamTransportSocketConfigFactory); 38 : 39 : } // namespace Http11Connect 40 : } // namespace TransportSockets 41 : } // namespace Extensions 42 : } // namespace Envoy