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

#include <udpcli.hpp>

Inheritance diagram for openvpn::UDPTransport::Client:
[legend]
Collaboration diagram for openvpn::UDPTransport::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
 
void transport_stop_requeueing () 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 UDPLink< Client * > 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
 
bool send (const Buffer &buf)
 
void udp_read_handler (PacketFrom::SPtr &pfp)
 
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::ip::udp::socket socket
 
ClientConfig::Ptr config
 
TransportClientParentparent
 
LinkImpl::Ptr impl
 
openvpn_io::ip::udp::resolver resolver
 
UDPTransport::AsioEndpoint server_endpoint
 
bool halt
 

Friends

class ClientConfig
 
class UDPLink< Client * >
 

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 72 of file udpcli.hpp.

Member Typedef Documentation

◆ LinkImpl

Definition at line 79 of file udpcli.hpp.

◆ Ptr

Definition at line 74 of file udpcli.hpp.

Constructor & Destructor Documentation

◆ ~Client()

openvpn::UDPTransport::Client::~Client ( )
inlineoverride

Definition at line 177 of file udpcli.hpp.

◆ Client()

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

Definition at line 183 of file udpcli.hpp.

Member Function Documentation

◆ native_handle()

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

Reimplemented from openvpn::TransportClient.

Definition at line 163 of file udpcli.hpp.

◆ reset_align_adjust()

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

Implements openvpn::TransportClient.

Definition at line 138 of file udpcli.hpp.

◆ resolve_callback()

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

Implements openvpn::AsyncResolvable< RESOLVER_TYPE >.

Definition at line 254 of file udpcli.hpp.

Here is the caller graph for this function:

◆ send()

bool openvpn::UDPTransport::Client::send ( const Buffer buf)
inlineprivate

Definition at line 200 of file udpcli.hpp.

Here is the caller graph for this function:

◆ server_endpoint_addr()

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

Implements openvpn::TransportClient.

Definition at line 153 of file udpcli.hpp.

Here is the caller graph for this function:

◆ server_endpoint_info()

void openvpn::UDPTransport::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 udpcli.hpp.

◆ server_endpoint_port()

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

Reimplemented from openvpn::TransportClient.

Definition at line 158 of file udpcli.hpp.

◆ start_connect_()

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

Definition at line 277 of file udpcli.hpp.

Here is the caller graph for this function:

◆ start_impl_()

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

Definition at line 302 of file udpcli.hpp.

◆ stop()

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

Implements openvpn::TransportClient.

Definition at line 173 of file udpcli.hpp.

Here is the caller graph for this function:

◆ stop_()

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

Definition at line 240 of file udpcli.hpp.

Here is the caller graph for this function:

◆ transport_has_send_queue()

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

Implements openvpn::TransportClient.

Definition at line 124 of file udpcli.hpp.

◆ transport_protocol()

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

Implements openvpn::TransportClient.

Definition at line 168 of file udpcli.hpp.

◆ transport_reparent()

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

Implements openvpn::TransportClient.

Definition at line 195 of file udpcli.hpp.

◆ transport_send()

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

Implements openvpn::TransportClient.

Definition at line 114 of file udpcli.hpp.

◆ transport_send_const()

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

Implements openvpn::TransportClient.

Definition at line 109 of file udpcli.hpp.

◆ transport_send_queue_empty()

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

Implements openvpn::TransportClient.

Definition at line 119 of file udpcli.hpp.

◆ transport_send_queue_size()

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

Implements openvpn::TransportClient.

Definition at line 133 of file udpcli.hpp.

◆ transport_start()

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

Implements openvpn::TransportClient.

Definition at line 82 of file udpcli.hpp.

◆ transport_stop_requeueing()

void openvpn::UDPTransport::Client::transport_stop_requeueing ( )
inlineoverridevirtual

Implements openvpn::TransportClient.

Definition at line 129 of file udpcli.hpp.

◆ udp_read_handler()

void openvpn::UDPTransport::Client::udp_read_handler ( PacketFrom::SPtr pfp)
inlineprivate

Definition at line 232 of file udpcli.hpp.

Friends And Related Symbol Documentation

◆ ClientConfig

friend class ClientConfig
friend

Definition at line 76 of file udpcli.hpp.

◆ UDPLink< Client * >

friend class UDPLink< Client * >
friend

Definition at line 76 of file udpcli.hpp.

Member Data Documentation

◆ config

ClientConfig::Ptr openvpn::UDPTransport::Client::config
private

Definition at line 335 of file udpcli.hpp.

◆ halt

bool openvpn::UDPTransport::Client::halt
private

Definition at line 340 of file udpcli.hpp.

◆ impl

LinkImpl::Ptr openvpn::UDPTransport::Client::impl
private

Definition at line 337 of file udpcli.hpp.

◆ parent

TransportClientParent* openvpn::UDPTransport::Client::parent
private

Definition at line 336 of file udpcli.hpp.

◆ resolver

openvpn_io::ip::udp::resolver openvpn::UDPTransport::Client::resolver
private

Definition at line 338 of file udpcli.hpp.

◆ server_endpoint

UDPTransport::AsioEndpoint openvpn::UDPTransport::Client::server_endpoint
private

Definition at line 339 of file udpcli.hpp.

◆ server_host

std::string openvpn::UDPTransport::Client::server_host
private

Definition at line 329 of file udpcli.hpp.

◆ server_port

std::string openvpn::UDPTransport::Client::server_port
private

Definition at line 330 of file udpcli.hpp.

◆ server_protocol

Protocol openvpn::UDPTransport::Client::server_protocol
private

Definition at line 332 of file udpcli.hpp.

◆ socket

openvpn_io::ip::udp::socket openvpn::UDPTransport::Client::socket
private

Definition at line 334 of file udpcli.hpp.


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