Coverage Report

Created: 2024-09-19 09:45

/proc/self/cwd/source/server/config_validation/connection.h
Line
Count
Source (jump to first uncovered line)
1
#pragma once
2
3
#include "source/common/network/connection_impl.h"
4
#include "source/server/config_validation/dispatcher.h"
5
6
namespace Envoy {
7
namespace Network {
8
9
/*
10
  Class representing connection to upstream entity in config verification mode. The connection is
11
  not really established, but sockets may be allocated. Methods doing "real" connections should be
12
  overridden with no-op implementations.
13
*/
14
class ConfigValidateConnection : public Network::ClientConnectionImpl {
15
public:
16
  ConfigValidateConnection(Event::ValidationDispatcher& dispatcher,
17
                           Network::Address::InstanceConstSharedPtr remote_address,
18
                           Network::Address::InstanceConstSharedPtr source_address,
19
                           Network::TransportSocketPtr&& transport_socket,
20
                           const Network::ConnectionSocket::OptionsSharedPtr& options,
21
                           const Network::TransportSocketOptionsConstSharedPtr& transport_options)
22
      : Network::ClientConnectionImpl(dispatcher, remote_address, source_address,
23
0
                                      std::move(transport_socket), options, transport_options) {}
24
25
  // Unit tests may instantiate it without proper event machine and leave opened sockets.
26
  // Do some cleanup before invoking base class's destructor.
27
0
  ~ConfigValidateConnection() override { close(ConnectionCloseType::NoFlush); }
28
29
  // connect may be called in config verification mode.
30
  // It is redefined as no-op. Calling parent's method triggers connection to upstream host.
31
0
  void connect() override {}
32
};
33
34
} // namespace Network
35
} // namespace Envoy