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

#include <client.hpp>

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

Public Member Functions

void tun_start (const OptionList &opt, TransportClient &transcli, CryptoDCSettings &) override
 
bool tun_send (BufferAllocated &buf) override
 
std::string tun_name () const override
 
std::string vpn_ip4 () const override
 
std::string vpn_ip6 () const override
 
std::string vpn_gw4 () const override
 
std::string vpn_gw6 () const override
 
int vpn_mtu () const override
 
void set_disconnect () override
 
void stop () override
 
virtual ~Client ()
 
void apply_push_update (const OptionList &opt, TransportClient &transcli) override
 Notifies tun client about received PUSH_UPDATE control channel message.
 
- Public Member Functions inherited from openvpn::TunClient
virtual void adjust_mss (int mss)
 
virtual std::uint32_t vpn_interface_index () const
 
- 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 Tun< Client * > TunImpl
 

Private Member Functions

 Client (openvpn_io::io_context &io_context_arg, ClientConfig *config_arg, TunClientParent &parent_arg)
 
bool send (Buffer &buf)
 
void tun_read_handler (PacketFrom::SPtr &pfp)
 
void tun_error_handler (const Error::Type errtype, const openvpn_io::error_code *error)
 
void stop_ ()
 

Private Attributes

openvpn_io::io_context & io_context
 
TunPersist::Ptr tun_persist
 
ClientConfig::Ptr config
 
TunClientParentparent
 
TunImpl::Ptr impl
 
bool halt
 
TunProp::State::Ptr state
 

Friends

class ClientConfig
 
class TunIO< Client *, PacketFrom, openvpn_io::posix::stream_descriptor >
 

Additional Inherited Members

- Public Types inherited from openvpn::TunClient
typedef RCPtr< TunClientPtr
 
- 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.
 

Detailed Description

Definition at line 115 of file client.hpp.

Member Typedef Documentation

◆ TunImpl

Definition at line 120 of file client.hpp.

Constructor & Destructor Documentation

◆ ~Client()

virtual openvpn::TunBuilderClient::Client::~Client ( )
inlinevirtual

Definition at line 268 of file client.hpp.

◆ Client()

openvpn::TunBuilderClient::Client::Client ( openvpn_io::io_context &  io_context_arg,
ClientConfig config_arg,
TunClientParent parent_arg 
)
inlineprivate

Definition at line 291 of file client.hpp.

Member Function Documentation

◆ apply_push_update()

void openvpn::TunBuilderClient::Client::apply_push_update ( const OptionList opt,
TransportClient cli 
)
inlineoverridevirtual

Notifies tun client about received PUSH_UPDATE control channel message.

The merging of exiting and incoming options (including removing options) happens before this call, so implementations are supposed to only undo existing options and apply the new ones, normally by calling stop() and tun_start().

Parameters
optmerged options, to be applied by implementation
clitransport client, passed to tun_start() call

Reimplemented from openvpn::TunClient.

Definition at line 273 of file client.hpp.

◆ send()

bool openvpn::TunBuilderClient::Client::send ( Buffer buf)
inlineprivate

Definition at line 302 of file client.hpp.

Here is the caller graph for this function:

◆ set_disconnect()

void openvpn::TunBuilderClient::Client::set_disconnect ( )
inlineoverridevirtual

Implements openvpn::TunClient.

Definition at line 258 of file client.hpp.

◆ stop()

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

Implements openvpn::TunClient.

Definition at line 264 of file client.hpp.

Here is the caller graph for this function:

◆ stop_()

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

Definition at line 320 of file client.hpp.

Here is the caller graph for this function:

◆ tun_error_handler()

void openvpn::TunBuilderClient::Client::tun_error_handler ( const Error::Type  errtype,
const openvpn_io::error_code *  error 
)
inlineprivate

Definition at line 315 of file client.hpp.

◆ tun_name()

std::string openvpn::TunBuilderClient::Client::tun_name ( ) const
inlineoverridevirtual

Implements openvpn::TunClient.

Definition at line 213 of file client.hpp.

◆ tun_read_handler()

void openvpn::TunBuilderClient::Client::tun_read_handler ( PacketFrom::SPtr pfp)
inlineprivate

Definition at line 310 of file client.hpp.

◆ tun_send()

bool openvpn::TunBuilderClient::Client::tun_send ( BufferAllocated buf)
inlineoverridevirtual

Implements openvpn::TunClient.

Definition at line 208 of file client.hpp.

◆ tun_start()

void openvpn::TunBuilderClient::Client::tun_start ( const OptionList opt,
TransportClient transcli,
CryptoDCSettings  
)
inlineoverridevirtual

Implements openvpn::TunClient.

Definition at line 123 of file client.hpp.

◆ vpn_gw4()

std::string openvpn::TunBuilderClient::Client::vpn_gw4 ( ) const
inlineoverridevirtual

Reimplemented from openvpn::TunClient.

Definition at line 237 of file client.hpp.

◆ vpn_gw6()

std::string openvpn::TunBuilderClient::Client::vpn_gw6 ( ) const
inlineoverridevirtual

Reimplemented from openvpn::TunClient.

Definition at line 245 of file client.hpp.

◆ vpn_ip4()

std::string openvpn::TunBuilderClient::Client::vpn_ip4 ( ) const
inlineoverridevirtual

Implements openvpn::TunClient.

Definition at line 221 of file client.hpp.

◆ vpn_ip6()

std::string openvpn::TunBuilderClient::Client::vpn_ip6 ( ) const
inlineoverridevirtual

Implements openvpn::TunClient.

Definition at line 229 of file client.hpp.

◆ vpn_mtu()

int openvpn::TunBuilderClient::Client::vpn_mtu ( ) const
inlineoverridevirtual

Implements openvpn::TunClient.

Definition at line 253 of file client.hpp.

Friends And Related Symbol Documentation

◆ ClientConfig

friend class ClientConfig
friend

Definition at line 117 of file client.hpp.

◆ TunIO< Client *, PacketFrom, openvpn_io::posix::stream_descriptor >

friend class TunIO< Client *, PacketFrom, openvpn_io::posix::stream_descriptor >
friend

Definition at line 117 of file client.hpp.

Member Data Documentation

◆ config

ClientConfig::Ptr openvpn::TunBuilderClient::Client::config
private

Definition at line 336 of file client.hpp.

◆ halt

bool openvpn::TunBuilderClient::Client::halt
private

Definition at line 339 of file client.hpp.

◆ impl

TunImpl::Ptr openvpn::TunBuilderClient::Client::impl
private

Definition at line 338 of file client.hpp.

◆ io_context

openvpn_io::io_context& openvpn::TunBuilderClient::Client::io_context
private

Definition at line 334 of file client.hpp.

◆ parent

TunClientParent& openvpn::TunBuilderClient::Client::parent
private

Definition at line 337 of file client.hpp.

◆ state

TunProp::State::Ptr openvpn::TunBuilderClient::Client::state
private

Definition at line 340 of file client.hpp.

◆ tun_persist

TunPersist::Ptr openvpn::TunBuilderClient::Client::tun_persist
private

Definition at line 335 of file client.hpp.


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