OpenVPN 3 Core Library
Loading...
Searching...
No Matches
openvpn::TunClientFactory Struct Referenceabstract

#include <tunbase.hpp>

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

Public Types

typedef RCPtr< TunClientFactoryPtr
 
- Public Types inherited from openvpn::RC< thread_unsafe_refcount >
typedef RCPtr< RCPtr
 

Public Member Functions

virtual TunClient::Ptr new_tun_client_obj (openvpn_io::io_context &io_context, TunClientParent &parent, TransportClient *transcli)=0
 
virtual bool layer_2_supported () const
 
virtual bool supports_proto_v3 ()=0
 
virtual void finalize (const bool disconnected)
 
- 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.
 

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 93 of file tunbase.hpp.

Member Typedef Documentation

◆ Ptr

Definition at line 95 of file tunbase.hpp.

Member Function Documentation

◆ finalize()

virtual void openvpn::TunClientFactory::finalize ( const bool  disconnected)
inlinevirtual

Reimplemented in openvpn::DCOTransport::ClientConfig, openvpn::TunBuilderClient::ClientConfig, openvpn::TunMac::ClientConfig, and openvpn::TunWin::ClientConfig.

Definition at line 119 of file tunbase.hpp.

Here is the caller graph for this function:

◆ layer_2_supported()

virtual bool openvpn::TunClientFactory::layer_2_supported ( ) const
inlinevirtual

Reimplemented in openvpn::TunMac::ClientConfig, and openvpn::TunWin::ClientConfig.

Definition at line 100 of file tunbase.hpp.

◆ new_tun_client_obj()

virtual TunClient::Ptr openvpn::TunClientFactory::new_tun_client_obj ( openvpn_io::io_context &  io_context,
TunClientParent parent,
TransportClient transcli 
)
pure virtual

Implemented in openvpn::DCOTransport::ClientConfig, openvpn::TunBuilderClient::ClientConfig, openvpn::TunNull::ClientConfig, openvpn::TunLinux::ClientConfig, openvpn::TunMac::ClientConfig, and openvpn::TunWin::ClientConfig.

Here is the caller graph for this function:

◆ supports_proto_v3()

virtual bool openvpn::TunClientFactory::supports_proto_v3 ( )
pure virtual

Return whether this tun implementation will support data v3 features (AEAD tag at the end and 64 bit packet counters).

This is more a property of the data encryption layer than of the tun device but since all of our DCO encryptions are setup with the tun setup, we also make it the responsibility of the tun client to signal v3 data layer support.

Implemented in openvpn::DCOTransport::ClientConfig, openvpn::TunBuilderClient::ClientConfig, openvpn::TunNull::ClientConfig, openvpn::TunLinux::ClientConfig, openvpn::TunMac::ClientConfig, and openvpn::TunWin::ClientConfig.

Here is the caller graph for this function:

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