OpenVPN 3 Core Library
|
#include <protostack.hpp>
Public Types | |
enum | NetSendType { NET_SEND_SSL , NET_SEND_RAW , NET_SEND_ACK , NET_SEND_RETRANSMIT } |
typedef reliable::id_t | id_t |
typedef ReliableSendTemplate< PACKET > | ReliableSend |
typedef ReliableRecvTemplate< PACKET > | ReliableRecv |
Public Member Functions | |
OPENVPN_SIMPLE_EXCEPTION (proto_stack_invalidated) | |
OPENVPN_SIMPLE_EXCEPTION (unknown_status_from_ssl_layer) | |
ProtoStackBase (SSLFactoryAPI &ssl_factory, TimePtr now_arg, const Time::Duration &tls_timeout_arg, const Frame::Ptr &frame, const SessionStats::Ptr &stats_arg, bool psid_cookie_mode) | |
void | start_handshake () |
uint32_t | get_tls_warnings () const |
bool | net_recv (PACKET &&pkt) |
void | app_send (BufferPtr &&buf) |
void | raw_send (PACKET &&pkt) |
void | flush () |
void | send_pending_acks () |
void | retransmit () |
Time | next_retransmit () const |
bool | ssl_started () const |
bool | invalidated () const |
Error::Type | invalidation_reason () const |
void | invalidate (const Error::Type reason) |
std::string | ssl_handshake_details () const |
void | export_key_material (OpenVPNStaticKey &key, const std::string &label) const |
const AuthCert::Ptr & | auth_cert () const |
Static Public Attributes | |
static constexpr size_t | ovpn_sending_window = 6 |
static constexpr size_t | ovpn_receiving_window = ReliableAck::maximum_acks_ack_v1 |
Protected Attributes | |
TimePtr | now |
ReliableRecv | rel_recv |
ReliableSend | rel_send |
ReliableAck | xmit_acks {} |
Private Member Functions | |
PARENT & | parent () |
void | send_pending_ssl_ciphertext_packets () |
If there are any pending SSL ciphertext packets, encapsulate and send them out. | |
void | send_pending_ssl_ciphertext_packets_nothrow () noexcept |
A version of send_pending_ssl_ciphertext_packets() that guarantees no exceptions. | |
void | down_stack_app () |
void | down_stack_raw () |
bool | up_stack (PACKET &recv) |
void | up_sequenced () |
void | update_retransmit () |
void | error (const Error::Type reason) |
Private Attributes | |
const Time::Duration | tls_timeout |
SSLAPI::Ptr | ssl_ |
Frame::Ptr | frame_ |
int | up_stack_reentry_level = 0 |
bool | invalidated_ = false |
Error::Type | invalidation_reason_ = Error::SUCCESS |
bool | ssl_started_ = false |
Time | next_retransmit_ = Time::infinite() |
BufferPtr | to_app_buf |
PACKET | ack_send_buf |
std::deque< BufferPtr > | app_write_queue |
std::deque< PACKET > | raw_write_queue |
SessionStats::Ptr | stats |
Definition at line 68 of file protostack.hpp.
typedef reliable::id_t openvpn::ProtoStackBase< PACKET, PARENT >::id_t |
Definition at line 74 of file protostack.hpp.
typedef ReliableRecvTemplate<PACKET> openvpn::ProtoStackBase< PACKET, PARENT >::ReliableRecv |
Definition at line 76 of file protostack.hpp.
typedef ReliableSendTemplate<PACKET> openvpn::ProtoStackBase< PACKET, PARENT >::ReliableSend |
Definition at line 75 of file protostack.hpp.
enum openvpn::ProtoStackBase::NetSendType |
Enumerator | |
---|---|
NET_SEND_SSL | |
NET_SEND_RAW | |
NET_SEND_ACK | |
NET_SEND_RETRANSMIT |
Definition at line 81 of file protostack.hpp.
|
inline |
Definition at line 89 of file protostack.hpp.
|
inline |
Definition at line 134 of file protostack.hpp.
|
inline |
Definition at line 260 of file protostack.hpp.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
Definition at line 254 of file protostack.hpp.
|
inline |
Definition at line 152 of file protostack.hpp.
|
inline |
Definition at line 117 of file protostack.hpp.
|
inline |
|
inline |
|
inline |
Definition at line 233 of file protostack.hpp.
|
inline |
Definition at line 124 of file protostack.hpp.
|
inline |
Definition at line 212 of file protostack.hpp.
openvpn::ProtoStackBase< PACKET, PARENT >::OPENVPN_SIMPLE_EXCEPTION | ( | proto_stack_invalidated | ) |
openvpn::ProtoStackBase< PACKET, PARENT >::OPENVPN_SIMPLE_EXCEPTION | ( | unknown_status_from_ssl_layer | ) |
|
inlineprivate |
|
inline |
Definition at line 143 of file protostack.hpp.
|
inline |
Definition at line 181 of file protostack.hpp.
|
inline |
Definition at line 163 of file protostack.hpp.
|
inlineprivate |
If there are any pending SSL ciphertext packets, encapsulate and send them out.
Definition at line 318 of file protostack.hpp.
|
inlineprivatenoexcept |
A version of send_pending_ssl_ciphertext_packets() that guarantees no exceptions.
Definition at line 346 of file protostack.hpp.
|
inline |
Definition at line 249 of file protostack.hpp.
|
inline |
Definition at line 221 of file protostack.hpp.
|
inline |
Definition at line 107 of file protostack.hpp.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
private |
Definition at line 532 of file protostack.hpp.
|
private |
Definition at line 533 of file protostack.hpp.
|
private |
Definition at line 525 of file protostack.hpp.
|
private |
Definition at line 527 of file protostack.hpp.
|
private |
Definition at line 528 of file protostack.hpp.
|
private |
Definition at line 530 of file protostack.hpp.
|
protected |
Definition at line 538 of file protostack.hpp.
|
staticconstexpr |
Definition at line 72 of file protostack.hpp.
|
staticconstexpr |
Definition at line 71 of file protostack.hpp.
|
private |
Definition at line 534 of file protostack.hpp.
|
protected |
Definition at line 539 of file protostack.hpp.
|
protected |
Definition at line 540 of file protostack.hpp.
|
private |
Definition at line 524 of file protostack.hpp.
|
private |
Definition at line 529 of file protostack.hpp.
|
private |
Definition at line 535 of file protostack.hpp.
|
private |
Definition at line 523 of file protostack.hpp.
|
private |
Definition at line 531 of file protostack.hpp.
|
private |
Definition at line 526 of file protostack.hpp.
|
protected |
Definition at line 541 of file protostack.hpp.