LCOV - code coverage report
Current view: top level - source/extensions/transport_sockets/common - passthrough.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 29 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 11 0.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/network/connection.h"
       4             : #include "envoy/network/transport_socket.h"
       5             : 
       6             : #include "source/common/buffer/buffer_impl.h"
       7             : #include "source/common/network/transport_socket_options_impl.h"
       8             : #include "source/common/runtime/runtime_features.h"
       9             : 
      10             : namespace Envoy {
      11             : namespace Extensions {
      12             : namespace TransportSockets {
      13             : 
      14             : class PassthroughFactory : public Network::CommonUpstreamTransportSocketFactory {
      15             : public:
      16             :   PassthroughFactory(Network::UpstreamTransportSocketFactoryPtr&& transport_socket_factory)
      17           0 :       : transport_socket_factory_(std::move(transport_socket_factory)) {
      18           0 :     ASSERT(transport_socket_factory_ != nullptr);
      19           0 :   }
      20             : 
      21           0 :   bool implementsSecureTransport() const override {
      22           0 :     return transport_socket_factory_->implementsSecureTransport();
      23           0 :   }
      24           0 :   bool supportsAlpn() const override { return transport_socket_factory_->supportsAlpn(); }
      25           0 :   absl::string_view defaultServerNameIndication() const override {
      26           0 :     return transport_socket_factory_->defaultServerNameIndication();
      27           0 :   }
      28             :   void hashKey(std::vector<uint8_t>& key,
      29           0 :                Network::TransportSocketOptionsConstSharedPtr options) const override {
      30           0 :     return transport_socket_factory_->hashKey(key, options);
      31           0 :   }
      32           0 :   Envoy::Ssl::ClientContextSharedPtr sslCtx() override {
      33           0 :     return transport_socket_factory_->sslCtx();
      34           0 :   }
      35           0 :   OptRef<const Ssl::ClientContextConfig> clientContextConfig() const override {
      36           0 :     return transport_socket_factory_->clientContextConfig();
      37           0 :   }
      38           0 :   std::shared_ptr<quic::QuicCryptoClientConfig> getCryptoConfig() override {
      39           0 :     return transport_socket_factory_->getCryptoConfig();
      40           0 :   }
      41             : 
      42             : protected:
      43             :   // The wrapped factory.
      44             :   Network::UpstreamTransportSocketFactoryPtr transport_socket_factory_;
      45             : };
      46             : 
      47             : class DownstreamPassthroughFactory : public Network::DownstreamTransportSocketFactory {
      48             : public:
      49             :   DownstreamPassthroughFactory(
      50             :       Network::DownstreamTransportSocketFactoryPtr&& transport_socket_factory)
      51           0 :       : transport_socket_factory_(std::move(transport_socket_factory)) {
      52           0 :     ASSERT(transport_socket_factory_ != nullptr);
      53           0 :   }
      54             : 
      55           0 :   bool implementsSecureTransport() const override {
      56           0 :     return transport_socket_factory_->implementsSecureTransport();
      57           0 :   }
      58             : 
      59             : protected:
      60             :   // The wrapped factory.
      61             :   Network::DownstreamTransportSocketFactoryPtr transport_socket_factory_;
      62             : };
      63             : 
      64             : class PassthroughSocket : public Network::TransportSocket {
      65             : public:
      66             :   PassthroughSocket(Network::TransportSocketPtr&& transport_socket);
      67             : 
      68             :   void setTransportSocketCallbacks(Network::TransportSocketCallbacks& callbacks) override;
      69             :   std::string protocol() const override;
      70             :   absl::string_view failureReason() const override;
      71             :   bool canFlushClose() override;
      72             :   Api::SysCallIntResult connect(Network::ConnectionSocket& socket) override;
      73             :   void closeSocket(Network::ConnectionEvent event) override;
      74             :   Network::IoResult doRead(Buffer::Instance& buffer) override;
      75             :   Network::IoResult doWrite(Buffer::Instance& buffer, bool end_stream) override;
      76             :   void onConnected() override;
      77             :   Ssl::ConnectionInfoConstSharedPtr ssl() const override;
      78             :   // startSecureTransport method should not be called for this transport socket.
      79           0 :   bool startSecureTransport() override { return false; }
      80             :   void configureInitialCongestionWindow(uint64_t bandwidth_bits_per_sec,
      81             :                                         std::chrono::microseconds rtt) override;
      82             : 
      83             : protected:
      84             :   Network::TransportSocketPtr transport_socket_;
      85             : };
      86             : 
      87             : } // namespace TransportSockets
      88             : } // namespace Extensions
      89             : } // namespace Envoy

Generated by: LCOV version 1.15