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

#include <cliconnect.hpp>

Inheritance diagram for openvpn::ClientConnect:
[legend]
Collaboration diagram for openvpn::ClientConnect:
[legend]

Public Types

typedef RCPtr< ClientConnectPtr
 
typedef ClientOptions::Client Client
 
- Public Types inherited from openvpn::RC< thread_unsafe_refcount >
typedef RCPtr< RCPtr
 

Public Member Functions

 OPENVPN_SIMPLE_EXCEPTION (client_connect_unhandled_exception)
 
 ClientConnect (openvpn_io::io_context &io_context_arg, const ClientOptions::Ptr &client_options_arg)
 
void start ()
 
void send_explicit_exit_notify ()
 
void graceful_stop ()
 
void stop ()
 
void stop_on_signal (const openvpn_io::error_code &error, int signal_number)
 
void thread_safe_stop ()
 
void pause (const std::string &reason)
 
void resume ()
 
void reconnect (int seconds)
 
void thread_safe_pause (const std::string &reason)
 
void thread_safe_resume ()
 
void thread_safe_reconnect (int seconds)
 
void dont_restart ()
 
void post_cc_msg (const std::string &msg)
 
void thread_safe_post_cc_msg (std::string msg)
 
void send_app_control_channel_msg (std::string protocol, std::string msg)
 
template<typename... ArgsT>
void start_acc_certcheck (ArgsT &&...args)
 Passes the given arguments through to start_acc_certcheck.
 
void thread_safe_send_app_control_channel_msg (std::string protocol, std::string msg)
 
 ~ClientConnect ()
 
- 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 Member Functions

void interim_finalize ()
 
virtual void bulk_resolve_done () override
 
void cancel_timers ()
 
void restart_wait_callback (unsigned int gen, const openvpn_io::error_code &e)
 
void server_poll_callback (unsigned int gen, const openvpn_io::error_code &e)
 
void conn_timer_callback (unsigned int gen, const openvpn_io::error_code &e)
 
void conn_timer_start (int timeout)
 
bool test_network () const
 
virtual void client_proto_connected () override
 
void client_proto_renegotiated () override
 
void queue_restart (std::chrono::milliseconds delay=default_delay_)
 
virtual void client_proto_auth_pending_timeout (int timeout) override
 
template<typename ErrorClass >
void add_error_and_stop (const Client *client)
 
template<typename ErrorClass >
void add_error_and_stop (const int error_code, const std::string &fatal_reason)
 
template<typename ErrorClass >
void add_error_and_stop (const int error_code)
 
template<typename ErrorClass >
void add_error_and_restart (std::chrono::milliseconds delay, const std::string &fatal_reason)
 
template<typename ErrorClass >
void add_error_and_restart (std::chrono::milliseconds delay)
 
virtual void client_proto_terminate () override
 
void handle_auth_failed (const int error_code, const std::string &reason)
 
void new_client ()
 
virtual void cln_stop () override
 
virtual void cln_pause (const std::string &reason) override
 
virtual void cln_resume () override
 
virtual void cln_reconnect (int seconds) override
 
- Private Member Functions inherited from openvpn::ClientProto::NotifyCallback
virtual ~NotifyCallback ()=default
 
- Private Member Functions inherited from openvpn::RemoteList::BulkResolve::NotifyCallback
virtual ~NotifyCallback ()=default
 
- Private Member Functions inherited from openvpn::ClientLifeCycle::NotifyCallback
virtual ~NotifyCallback ()=default
 

Private Attributes

unsigned int generation
 
bool halt
 
bool paused
 
bool client_finalized
 
bool dont_restart_
 
bool lifecycle_started
 
int conn_timeout
 
openvpn_io::io_context & io_context
 
ClientOptions::Ptr client_options
 
Client::Ptr client
 
TransportClientFactory::Ptr transport_factory_relay
 
AsioTimer server_poll_timer
 
AsioTimer restart_wait_timer
 
AsioTimer conn_timer
 
bool conn_timer_pending
 
std::unique_ptr< AsioWorkasio_work
 
RemoteList::BulkResolve::Ptr bulk_resolve
 

Static Private Attributes

static constexpr std::chrono::milliseconds default_delay_ = 2000ms
 

Additional Inherited Members

- 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 61 of file cliconnect.hpp.

Member Typedef Documentation

◆ Client

◆ Ptr

Definition at line 67 of file cliconnect.hpp.

Constructor & Destructor Documentation

◆ ClientConnect()

openvpn::ClientConnect::ClientConnect ( openvpn_io::io_context &  io_context_arg,
const ClientOptions::Ptr client_options_arg 
)
inline

Definition at line 72 of file cliconnect.hpp.

◆ ~ClientConnect()

openvpn::ClientConnect::~ClientConnect ( )
inline

Definition at line 297 of file cliconnect.hpp.

Member Function Documentation

◆ add_error_and_restart() [1/2]

template<typename ErrorClass >
void openvpn::ClientConnect::add_error_and_restart ( std::chrono::milliseconds  delay)
inlineprivate

Definition at line 485 of file cliconnect.hpp.

◆ add_error_and_restart() [2/2]

template<typename ErrorClass >
void openvpn::ClientConnect::add_error_and_restart ( std::chrono::milliseconds  delay,
const std::string &  fatal_reason 
)
inlineprivate

Definition at line 476 of file cliconnect.hpp.

◆ add_error_and_stop() [1/3]

template<typename ErrorClass >
void openvpn::ClientConnect::add_error_and_stop ( const Client client)
inlineprivate

Definition at line 451 of file cliconnect.hpp.

◆ add_error_and_stop() [2/3]

template<typename ErrorClass >
void openvpn::ClientConnect::add_error_and_stop ( const int  error_code)
inlineprivate

Definition at line 467 of file cliconnect.hpp.

◆ add_error_and_stop() [3/3]

template<typename ErrorClass >
void openvpn::ClientConnect::add_error_and_stop ( const int  error_code,
const std::string &  fatal_reason 
)
inlineprivate

Definition at line 458 of file cliconnect.hpp.

◆ bulk_resolve_done()

virtual void openvpn::ClientConnect::bulk_resolve_done ( )
inlineoverrideprivatevirtual

Implements openvpn::RemoteList::BulkResolve::NotifyCallback.

Definition at line 312 of file cliconnect.hpp.

◆ cancel_timers()

void openvpn::ClientConnect::cancel_timers ( )
inlineprivate

Definition at line 318 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ client_proto_auth_pending_timeout()

virtual void openvpn::ClientConnect::client_proto_auth_pending_timeout ( int  timeout)
inlineoverrideprivatevirtual

Reimplemented from openvpn::ClientProto::NotifyCallback.

Definition at line 434 of file cliconnect.hpp.

◆ client_proto_connected()

virtual void openvpn::ClientConnect::client_proto_connected ( )
inlineoverrideprivatevirtual

Reimplemented from openvpn::ClientProto::NotifyCallback.

Definition at line 393 of file cliconnect.hpp.

◆ client_proto_renegotiated()

void openvpn::ClientConnect::client_proto_renegotiated ( )
inlineoverrideprivatevirtual

Reimplemented from openvpn::ClientProto::NotifyCallback.

Definition at line 415 of file cliconnect.hpp.

◆ client_proto_terminate()

virtual void openvpn::ClientConnect::client_proto_terminate ( )
inlineoverrideprivatevirtual

Implements openvpn::ClientProto::NotifyCallback.

Definition at line 493 of file cliconnect.hpp.

◆ cln_pause()

virtual void openvpn::ClientConnect::cln_pause ( const std::string &  reason)
inlineoverrideprivatevirtual

Implements openvpn::ClientLifeCycle::NotifyCallback.

Definition at line 706 of file cliconnect.hpp.

◆ cln_reconnect()

virtual void openvpn::ClientConnect::cln_reconnect ( int  seconds)
inlineoverrideprivatevirtual

Implements openvpn::ClientLifeCycle::NotifyCallback.

Definition at line 716 of file cliconnect.hpp.

◆ cln_resume()

virtual void openvpn::ClientConnect::cln_resume ( )
inlineoverrideprivatevirtual

Implements openvpn::ClientLifeCycle::NotifyCallback.

Definition at line 711 of file cliconnect.hpp.

◆ cln_stop()

virtual void openvpn::ClientConnect::cln_stop ( )
inlineoverrideprivatevirtual

Implements openvpn::ClientLifeCycle::NotifyCallback.

Definition at line 701 of file cliconnect.hpp.

◆ conn_timer_callback()

void openvpn::ClientConnect::conn_timer_callback ( unsigned int  gen,
const openvpn_io::error_code &  e 
)
inlineprivate

Definition at line 350 of file cliconnect.hpp.

◆ conn_timer_start()

void openvpn::ClientConnect::conn_timer_start ( int  timeout)
inlineprivate

Definition at line 369 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ dont_restart()

void openvpn::ClientConnect::dont_restart ( )
inline

Definition at line 247 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ graceful_stop()

void openvpn::ClientConnect::graceful_stop ( )
inline

Definition at line 119 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ handle_auth_failed()

void openvpn::ClientConnect::handle_auth_failed ( const int  error_code,
const std::string &  reason 
)
inlineprivate

Definition at line 621 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ interim_finalize()

void openvpn::ClientConnect::interim_finalize ( )
inlineprivate

Definition at line 303 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ new_client()

void openvpn::ClientConnect::new_client ( )
inlineprivate

Definition at line 645 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ OPENVPN_SIMPLE_EXCEPTION()

openvpn::ClientConnect::OPENVPN_SIMPLE_EXCEPTION ( client_connect_unhandled_exception  )

◆ pause()

void openvpn::ClientConnect::pause ( const std::string &  reason)
inline

Definition at line 173 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ post_cc_msg()

void openvpn::ClientConnect::post_cc_msg ( const std::string &  msg)
inline

Definition at line 252 of file cliconnect.hpp.

◆ queue_restart()

void openvpn::ClientConnect::queue_restart ( std::chrono::milliseconds  delay = default_delay_)
inlineprivate

Definition at line 422 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ reconnect()

void openvpn::ClientConnect::reconnect ( int  seconds)
inline

Definition at line 204 of file cliconnect.hpp.

◆ restart_wait_callback()

void openvpn::ClientConnect::restart_wait_callback ( unsigned int  gen,
const openvpn_io::error_code &  e 
)
inlineprivate

Definition at line 326 of file cliconnect.hpp.

◆ resume()

void openvpn::ClientConnect::resume ( )
inline

Definition at line 192 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ send_app_control_channel_msg()

void openvpn::ClientConnect::send_app_control_channel_msg ( std::string  protocol,
std::string  msg 
)
inline

Definition at line 267 of file cliconnect.hpp.

◆ send_explicit_exit_notify()

void openvpn::ClientConnect::send_explicit_exit_notify ( )
inline

Definition at line 113 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ server_poll_callback()

void openvpn::ClientConnect::server_poll_callback ( unsigned int  gen,
const openvpn_io::error_code &  e 
)
inlineprivate

Definition at line 341 of file cliconnect.hpp.

◆ start()

void openvpn::ClientConnect::start ( )
inline

Definition at line 90 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ start_acc_certcheck()

template<typename... ArgsT>
void openvpn::ClientConnect::start_acc_certcheck ( ArgsT &&...  args)
inline

Passes the given arguments through to start_acc_certcheck.

Template Parameters
ArgsTArgument types to pass
Parameters
argsparameter pack
See also
ClientProto::Session::start_acc_certcheck
OpenVPNClient::start_cert_check

Definition at line 280 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ stop()

void openvpn::ClientConnect::stop ( )
inline

Definition at line 126 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ stop_on_signal()

void openvpn::ClientConnect::stop_on_signal ( const openvpn_io::error_code &  error,
int  signal_number 
)
inline

Definition at line 158 of file cliconnect.hpp.

◆ test_network()

bool openvpn::ClientConnect::test_network ( ) const
inlineprivate

Definition at line 382 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ thread_safe_pause()

void openvpn::ClientConnect::thread_safe_pause ( const std::string &  reason)
inline

Definition at line 220 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ thread_safe_post_cc_msg()

void openvpn::ClientConnect::thread_safe_post_cc_msg ( std::string  msg)
inline

Definition at line 258 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ thread_safe_reconnect()

void openvpn::ClientConnect::thread_safe_reconnect ( int  seconds)
inline

Definition at line 238 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ thread_safe_resume()

void openvpn::ClientConnect::thread_safe_resume ( )
inline

Definition at line 229 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ thread_safe_send_app_control_channel_msg()

void openvpn::ClientConnect::thread_safe_send_app_control_channel_msg ( std::string  protocol,
std::string  msg 
)
inline

Definition at line 286 of file cliconnect.hpp.

Here is the caller graph for this function:

◆ thread_safe_stop()

void openvpn::ClientConnect::thread_safe_stop ( )
inline

Definition at line 164 of file cliconnect.hpp.

Here is the caller graph for this function:

Member Data Documentation

◆ asio_work

std::unique_ptr<AsioWork> openvpn::ClientConnect::asio_work
private

Definition at line 736 of file cliconnect.hpp.

◆ bulk_resolve

RemoteList::BulkResolve::Ptr openvpn::ClientConnect::bulk_resolve
private

Definition at line 737 of file cliconnect.hpp.

◆ client

Client::Ptr openvpn::ClientConnect::client
private

Definition at line 730 of file cliconnect.hpp.

◆ client_finalized

bool openvpn::ClientConnect::client_finalized
private

Definition at line 724 of file cliconnect.hpp.

◆ client_options

ClientOptions::Ptr openvpn::ClientConnect::client_options
private

Definition at line 729 of file cliconnect.hpp.

◆ conn_timeout

int openvpn::ClientConnect::conn_timeout
private

Definition at line 727 of file cliconnect.hpp.

◆ conn_timer

AsioTimer openvpn::ClientConnect::conn_timer
private

Definition at line 734 of file cliconnect.hpp.

◆ conn_timer_pending

bool openvpn::ClientConnect::conn_timer_pending
private

Definition at line 735 of file cliconnect.hpp.

◆ default_delay_

constexpr std::chrono::milliseconds openvpn::ClientConnect::default_delay_ = 2000ms
staticconstexprprivate

Definition at line 739 of file cliconnect.hpp.

◆ dont_restart_

bool openvpn::ClientConnect::dont_restart_
private

Definition at line 725 of file cliconnect.hpp.

◆ generation

unsigned int openvpn::ClientConnect::generation
private

Definition at line 721 of file cliconnect.hpp.

◆ halt

bool openvpn::ClientConnect::halt
private

Definition at line 722 of file cliconnect.hpp.

◆ io_context

openvpn_io::io_context& openvpn::ClientConnect::io_context
private

Definition at line 728 of file cliconnect.hpp.

◆ lifecycle_started

bool openvpn::ClientConnect::lifecycle_started
private

Definition at line 726 of file cliconnect.hpp.

◆ paused

bool openvpn::ClientConnect::paused
private

Definition at line 723 of file cliconnect.hpp.

◆ restart_wait_timer

AsioTimer openvpn::ClientConnect::restart_wait_timer
private

Definition at line 733 of file cliconnect.hpp.

◆ server_poll_timer

AsioTimer openvpn::ClientConnect::server_poll_timer
private

Definition at line 732 of file cliconnect.hpp.

◆ transport_factory_relay

TransportClientFactory::Ptr openvpn::ClientConnect::transport_factory_relay
private

Definition at line 731 of file cliconnect.hpp.


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