OpenVPN 3 Core Library
Loading...
Searching...
No Matches
openvpn::TCPTransport::Client Class Reference

#include <tcpcli.hpp>

Inheritance diagram for openvpn::TCPTransport::Client:
[legend]
Collaboration diagram for openvpn::TCPTransport::Client:
[legend]

Public Member Functions

void transport_start () override
 
bool transport_send_const (const Buffer &buf) override
 
bool transport_send (BufferAllocated &buf) override
 
bool transport_send_queue_empty () override
 
bool transport_has_send_queue () override
 
size_t transport_send_queue_size () override
 
void reset_align_adjust (const size_t align_adjust) override
 
void server_endpoint_info (std::string &host, std::string &port, std::string &proto, std::string &ip_addr) const override
 
IP::Addr server_endpoint_addr () const override
 
unsigned short server_endpoint_port () const override
 
openvpn_io::detail::socket_type native_handle () override
 
Protocol transport_protocol () const override
 
void stop () override
 
 ~Client () override
 
- Public Member Functions inherited from openvpn::RC< thread_unsafe_refcount >
 RC () noexcept=default
 
 RC (const RC &)=delete
 
virtual ~RC ()=default
 
RCoperator= (const RC &)=delete
 
olong use_count () const noexcept
 Delegates call to RCImpl and returns the result.
 

Private Types

typedef RCPtr< ClientPtr
 
typedef TCPLink< openvpn_io::ip::tcp, Client *, false > LinkImpl
 
- Private Types inherited from openvpn::AsyncResolvable< RESOLVER_TYPE >
using resolver_type = RESOLVER_TYPE
 
using results_type = typename RESOLVER_TYPE::results_type
 
using resolver_type = RESOLVER_TYPE
 
using results_type = typename RESOLVER_TYPE::results_type
 
- Private Types inherited from openvpn::RC< thread_unsafe_refcount >
typedef RCPtr< RCPtr
 

Private Member Functions

 Client (openvpn_io::io_context &io_context_arg, ClientConfig *config_arg, TransportClientParent *parent_arg)
 
void transport_reparent (TransportClientParent *parent_arg) override
 
void transport_stop_requeueing () override
 
bool send_const (const Buffer &cbuf)
 
bool send (BufferAllocated &buf)
 
void tcp_eof_handler ()
 
bool tcp_read_handler (BufferAllocated &buf)
 
void tcp_write_queue_needs_send ()
 
void tcp_error_handler (const char *error)
 
void stop_ ()
 
void resolve_callback (const openvpn_io::error_code &error, results_type results) override
 
void start_connect_ ()
 
void start_impl_ (const openvpn_io::error_code &error)
 
- Private Member Functions inherited from openvpn::AsyncResolvable< RESOLVER_TYPE >
 AsyncResolvable (openvpn_io::io_context &io_context_arg)
 
virtual ~AsyncResolvable ()
 
virtual void async_resolve_name (const std::string &host, const std::string &port)
 
void async_resolve_lock ()
 
void async_resolve_cancel ()
 
 AsyncResolvable (openvpn_io::io_context &io_context_arg)
 
virtual void async_resolve_name (const std::string &host, const std::string &port)
 
void async_resolve_lock ()
 
void async_resolve_cancel ()
 
- Private Member Functions inherited from openvpn::RC< thread_unsafe_refcount >
 RC () noexcept=default
 
 RC (const RC &)=delete
 
virtual ~RC ()=default
 
RCoperator= (const RC &)=delete
 
olong use_count () const noexcept
 Delegates call to RCImpl and returns the result.
 

Private Attributes

std::string server_host
 
std::string server_port
 
Protocol server_protocol
 
openvpn_io::io_context & io_context
 
openvpn_io::ip::tcp::socket socket
 
ClientConfig::Ptr config
 
TransportClientParentparent
 
LinkBase::Ptr impl
 
openvpn_io::ip::tcp::resolver resolver
 
LinkImpl::Base::protocol::endpoint server_endpoint
 
bool halt
 
bool stop_requeueing
 

Friends

class ClientConfig
 

Additional Inherited Members

- Public Types inherited from openvpn::TransportClient
typedef RCPtr< TransportClientPtr
 
- Public Types inherited from openvpn::RC< thread_unsafe_refcount >
typedef RCPtr< RCPtr
 
- Static Public Member Functions inherited from openvpn::RC< thread_unsafe_refcount >
static constexpr bool is_thread_safe ()
 Delegates call to RCImpl and returns the result.
 
- Static Private Member Functions inherited from openvpn::RC< thread_unsafe_refcount >
static constexpr bool is_thread_safe ()
 Delegates call to RCImpl and returns the result.
 

Detailed Description

Definition at line 73 of file tcpcli.hpp.

Member Typedef Documentation

◆ LinkImpl

typedef TCPLink<openvpn_io::ip::tcp, Client *, false> openvpn::TCPTransport::Client::LinkImpl
private

Definition at line 77 of file tcpcli.hpp.

◆ Ptr

Definition at line 75 of file tcpcli.hpp.

Constructor & Destructor Documentation

◆ ~Client()

openvpn::TCPTransport::Client::~Client ( )
inlineoverride

Definition at line 177 of file tcpcli.hpp.

◆ Client()

openvpn::TCPTransport::Client::Client ( openvpn_io::io_context &  io_context_arg,
ClientConfig config_arg,
TransportClientParent parent_arg 
)
inlineprivate

Definition at line 183 of file tcpcli.hpp.

Member Function Documentation

◆ native_handle()

openvpn_io::detail::socket_type openvpn::TCPTransport::Client::native_handle ( )
inlineoverridevirtual

Reimplemented from openvpn::TransportClient.

Definition at line 163 of file tcpcli.hpp.

◆ reset_align_adjust()

void openvpn::TCPTransport::Client::reset_align_adjust ( const size_t  align_adjust)
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 138 of file tcpcli.hpp.

◆ resolve_callback()

void openvpn::TCPTransport::Client::resolve_callback ( const openvpn_io::error_code &  error,
results_type  results 
)
inlineoverrideprivatevirtual

Implements openvpn::AsyncResolvable< RESOLVER_TYPE >.

Definition at line 266 of file tcpcli.hpp.

◆ send()

bool openvpn::TCPTransport::Client::send ( BufferAllocated buf)
inlineprivate

Definition at line 218 of file tcpcli.hpp.

Here is the caller graph for this function:

◆ send_const()

bool openvpn::TCPTransport::Client::send_const ( const Buffer cbuf)
inlineprivate

Definition at line 207 of file tcpcli.hpp.

Here is the caller graph for this function:

◆ server_endpoint_addr()

IP::Addr openvpn::TCPTransport::Client::server_endpoint_addr ( ) const
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 153 of file tcpcli.hpp.

Here is the caller graph for this function:

◆ server_endpoint_info()

void openvpn::TCPTransport::Client::server_endpoint_info ( std::string &  host,
std::string &  port,
std::string &  proto,
std::string &  ip_addr 
) const
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 144 of file tcpcli.hpp.

◆ server_endpoint_port()

unsigned short openvpn::TCPTransport::Client::server_endpoint_port ( ) const
inlineoverridevirtual

Reimplemented from openvpn::TransportClient.

Definition at line 158 of file tcpcli.hpp.

◆ start_connect_()

void openvpn::TCPTransport::Client::start_connect_ ( )
inlineprivate

Definition at line 289 of file tcpcli.hpp.

Here is the caller graph for this function:

◆ start_impl_()

void openvpn::TCPTransport::Client::start_impl_ ( const openvpn_io::error_code &  error)
inlineprivate

Definition at line 316 of file tcpcli.hpp.

◆ stop()

void openvpn::TCPTransport::Client::stop ( )
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 173 of file tcpcli.hpp.

Here is the caller graph for this function:

◆ stop_()

void openvpn::TCPTransport::Client::stop_ ( )
inlineprivate

Definition at line 251 of file tcpcli.hpp.

Here is the caller graph for this function:

◆ tcp_eof_handler()

void openvpn::TCPTransport::Client::tcp_eof_handler ( )
inlineprivate

Definition at line 226 of file tcpcli.hpp.

◆ tcp_error_handler()

void openvpn::TCPTransport::Client::tcp_error_handler ( const char *  error)
inlineprivate

Definition at line 243 of file tcpcli.hpp.

Here is the caller graph for this function:

◆ tcp_read_handler()

bool openvpn::TCPTransport::Client::tcp_read_handler ( BufferAllocated buf)
inlineprivate

Definition at line 232 of file tcpcli.hpp.

◆ tcp_write_queue_needs_send()

void openvpn::TCPTransport::Client::tcp_write_queue_needs_send ( )
inlineprivate

Definition at line 238 of file tcpcli.hpp.

◆ transport_has_send_queue()

bool openvpn::TCPTransport::Client::transport_has_send_queue ( )
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 125 of file tcpcli.hpp.

◆ transport_protocol()

Protocol openvpn::TCPTransport::Client::transport_protocol ( ) const
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 168 of file tcpcli.hpp.

◆ transport_reparent()

void openvpn::TCPTransport::Client::transport_reparent ( TransportClientParent parent_arg)
inlineoverrideprivatevirtual

Implements openvpn::TransportClient.

Definition at line 197 of file tcpcli.hpp.

◆ transport_send()

bool openvpn::TCPTransport::Client::transport_send ( BufferAllocated buf)
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 112 of file tcpcli.hpp.

◆ transport_send_const()

bool openvpn::TCPTransport::Client::transport_send_const ( const Buffer buf)
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 107 of file tcpcli.hpp.

◆ transport_send_queue_empty()

bool openvpn::TCPTransport::Client::transport_send_queue_empty ( )
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 117 of file tcpcli.hpp.

◆ transport_send_queue_size()

size_t openvpn::TCPTransport::Client::transport_send_queue_size ( )
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 130 of file tcpcli.hpp.

◆ transport_start()

void openvpn::TCPTransport::Client::transport_start ( )
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 86 of file tcpcli.hpp.

◆ transport_stop_requeueing()

void openvpn::TCPTransport::Client::transport_stop_requeueing ( )
inlineoverrideprivatevirtual

Implements openvpn::TransportClient.

Definition at line 202 of file tcpcli.hpp.

Friends And Related Symbol Documentation

◆ ClientConfig

friend class ClientConfig
friend

Definition at line 82 of file tcpcli.hpp.

Member Data Documentation

◆ config

ClientConfig::Ptr openvpn::TCPTransport::Client::config
private

Definition at line 388 of file tcpcli.hpp.

◆ halt

bool openvpn::TCPTransport::Client::halt
private

Definition at line 393 of file tcpcli.hpp.

◆ impl

LinkBase::Ptr openvpn::TCPTransport::Client::impl
private

Definition at line 390 of file tcpcli.hpp.

◆ io_context

openvpn_io::io_context& openvpn::TCPTransport::Client::io_context
private

Definition at line 386 of file tcpcli.hpp.

◆ parent

TransportClientParent* openvpn::TCPTransport::Client::parent
private

Definition at line 389 of file tcpcli.hpp.

◆ resolver

openvpn_io::ip::tcp::resolver openvpn::TCPTransport::Client::resolver
private

Definition at line 391 of file tcpcli.hpp.

◆ server_endpoint

LinkImpl::Base::protocol::endpoint openvpn::TCPTransport::Client::server_endpoint
private

Definition at line 392 of file tcpcli.hpp.

◆ server_host

std::string openvpn::TCPTransport::Client::server_host
private

Definition at line 382 of file tcpcli.hpp.

◆ server_port

std::string openvpn::TCPTransport::Client::server_port
private

Definition at line 383 of file tcpcli.hpp.

◆ server_protocol

Protocol openvpn::TCPTransport::Client::server_protocol
private

Definition at line 384 of file tcpcli.hpp.

◆ socket

openvpn_io::ip::tcp::socket openvpn::TCPTransport::Client::socket
private

Definition at line 387 of file tcpcli.hpp.

◆ stop_requeueing

bool openvpn::TCPTransport::Client::stop_requeueing
private

Definition at line 394 of file tcpcli.hpp.


The documentation for this class was generated from the following file: