dpp::ssl_connection
dpp::http_server_request
dpp::https_client
dpp::websocket_client
sslconnection.h
char char dpp::ssl_connection::client_to_server_buffer[DPP_BUFSIZE] [DPP_BUFSIZE] client_to_server_buffer dpp::ssl_connection::client_to_server_buffer

Internal ring buffer for client to server IO.

size_t size_t dpp::ssl_connection::client_to_server_length client_to_server_length dpp::ssl_connection::client_to_server_length = 0

Start offset into internal ring buffer for client to server IO.

size_t size_t dpp::ssl_connection::client_to_server_offset client_to_server_offset dpp::ssl_connection::client_to_server_offset = 0

Start offset into internal ring buffer for server to client IO.

bool bool dpp::ssl_connection::is_server is_server dpp::ssl_connection::is_server = false

True if this connection is a server inbound connection from accept().

std::mutex std::mutex dpp::ssl_connection::out_mutex out_mutex dpp::ssl_connection::out_mutex

Mutex for output buffer.

char char dpp::ssl_connection::server_to_client_buffer[DPP_BUFSIZE] [DPP_BUFSIZE] server_to_client_buffer dpp::ssl_connection::server_to_client_buffer

Internal ring buffer for server to client IO.

std::mutex std::mutex dpp::ssl_connection::ssl_mutex ssl_mutex dpp::ssl_connection::ssl_mutex

Mutex for creation of internal SSL pointers by openssl.

std::string std::string dpp::ssl_connection::buffer buffer dpp::ssl_connection::buffer

Input buffer received from socket.

uint64_t uint64_t dpp::ssl_connection::bytes_in bytes_in dpp::ssl_connection::bytes_in

Bytes in.

uint64_t uint64_t dpp::ssl_connection::bytes_out bytes_out dpp::ssl_connection::bytes_out

Bytes out.

std::string std::string dpp::ssl_connection::cipher cipher dpp::ssl_connection::cipher

SSL cipher in use.

uint8_t uint8_t dpp::ssl_connection::connect_retries connect_retries dpp::ssl_connection::connect_retries {0}

How many times we retried connect().

bool bool dpp::ssl_connection::connected connected dpp::ssl_connection::connected {false}

True if connection is completed.

std::string std::string dpp::ssl_connection::hostname hostname dpp::ssl_connection::hostname

Hostname connected to.

time_t time_t dpp::ssl_connection::last_tick last_tick dpp::ssl_connection::last_tick

For timers.

std::string std::string dpp::ssl_connection::obuffer obuffer dpp::ssl_connection::obuffer

Output buffer for sending to socket.

bool bool dpp::ssl_connection::plaintext plaintext dpp::ssl_connection::plaintext

True for a plain text connection.

std::string std::string dpp::ssl_connection::port port dpp::ssl_connection::port

Port connected to.

bool bool dpp::ssl_connection::raw_trace raw_trace dpp::ssl_connection::raw_trace {false}

Set this to true to log all IO to debug for this connection. This is an internal developer facility. Do not enable it unless you need to, as it will be very noisy.

dpp::socket dpp::socket dpp::ssl_connection::sfd sfd dpp::ssl_connection::sfd

Raw file descriptor of connection.

openssl_connection * openssl_connection* dpp::ssl_connection::ssl ssl dpp::ssl_connection::ssl

Openssl opaque contexts.

std::mutex std::mutex dpp::ssl_connection::ssl_close_mutex ssl_close_mutex dpp::ssl_connection::ssl_close_mutex

Protects openssl opaque contexts when closing.

There's data races when reconnecting severed connection. This makes sure we don't double free our contexts.

time_t time_t dpp::ssl_connection::start start dpp::ssl_connection::start

Start time of connection.

bool bool dpp::ssl_connection::tcp_connect_done tcp_connect_done dpp::ssl_connection::tcp_connect_done {false}

True if tcp connect() succeeded.

timer timer dpp::ssl_connection::timer_handle timer_handle dpp::ssl_connection::timer_handle

Timer handle for one second timer.

uint64_t uint64_t dpp::ssl_connection::unique_id unique_id dpp::ssl_connection::unique_id

Unique ID of socket used as a nonce You can use this to identify requests vs reply if you want. D++ itself only sets this, and does not use it in any logic. It starts at 1 and increments for each request made.

bool bool dpp::ssl_connection::keepalive keepalive dpp::ssl_connection::keepalive

True if we are keeping the connection alive after it has finished.

class cluster * class cluster* dpp::ssl_connection::owner owner dpp::ssl_connection::owner

Owning cluster.

std::string std::string dpp::ssl_connection::private_key_file private_key_file dpp::ssl_connection::private_key_file

Private key PEM file path for inbound SSL connections.

std::string std::string dpp::ssl_connection::public_key_file public_key_file dpp::ssl_connection::public_key_file

Public key PEM file path for inbound SSL connections.

void void dpp::ssl_connection::cleanup () cleanup dpp::ssl_connection::cleanup

Clean up resources.

void virtual void dpp::ssl_connection::connect () connect dpp::ssl_connection::connect connect connect connect

Start SSL connection and connect to TCP endpoint.

dpp::exception

Failed to initialise connection

void void dpp::ssl_connection::do_raw_trace (const std::string &message) const do_raw_trace dpp::ssl_connection::do_raw_trace const std::string & message

If raw_trace is set to true, log a debug message for this connection.

message

debug message

void virtual void dpp::ssl_connection::on_buffer_drained () on_buffer_drained dpp::ssl_connection::on_buffer_drained on_buffer_drained
void virtual void dpp::ssl_connection::one_second_timer () one_second_timer dpp::ssl_connection::one_second_timer one_second_timer one_second_timer one_second_timer one_second_timer one_second_timer

Called every second.

int int dpp::ssl_connection::start_connecting (dpp::socket sockfd, const struct sockaddr *addr, socklen_t addrlen) start_connecting dpp::ssl_connection::start_connecting dpp::socket sockfd const struct sockaddr * addr socklen_t addrlen

Start connecting to a TCP socket. This simply calls connect() and checks for error return, as the timeout is now handled in the main IO events for the ssl_connection class.

sockfd

socket descriptor

addr

address to connect to

addrlen

address length

timeout_ms

timeout in milliseconds

int -1 on error, 0 on success just like POSIX connect()

dpp::connection_exception

on failure

dpp::ssl_connection::ssl_connection
(cluster *creator, const std::string &_hostname, const std::string &_port="443", bool plaintext_downgrade=false, bool reuse=false)
ssl_connection
dpp::ssl_connection::ssl_connection
cluster * creator
const std::string & _hostname
const std::string & _port "443"
bool plaintext_downgrade false
bool reuse false

Connect to a specified host and port. Throws std::runtime_error on fatal error.

creator

Creating cluster

_hostname

The hostname to connect to

_port

the Port number to connect to

plaintext_downgrade

Set to true to connect using plaintext only, without initialising SSL.

reuse

Attempt to reuse previous connections for this hostname and port, if available Note that no Discord endpoints will function when downgraded. This option is provided only for connection to non-Discord addresses such as within dpp::cluster::request().

dpp::exception

Failed to initialise connection

dpp::ssl_connection::ssl_connection
(cluster *creator, socket fd, uint16_t port, bool plaintext_downgrade=false, const std::string &private_key="", const std::string &public_key="")
ssl_connection
dpp::ssl_connection::ssl_connection
cluster * creator
socket fd
uint16_t port
bool plaintext_downgrade false
const std::string & private_key ""
const std::string & public_key ""

Accept a new connection from listen()/accept() socket.

creator

Creating cluster

fd

Socket file descriptor assigned by accept()

port

Port the new fd came from

plaintext_downgrade

Set to true to connect using plaintext only, without initialising SSL.

private_key

if plaintext_downgrade is set to false, a private key PEM file for SSL connections

public_key

if plaintext_downgrade is set to false, a public key PEM file for SSL connections

virtual dpp::ssl_connection::~ssl_connection
()
~ssl_connection
dpp::ssl_connection::~ssl_connection

Destroy the ssl_connection object.

void virtual void dpp::ssl_connection::close () close dpp::ssl_connection::close close close close

Close socket connection.

void void dpp::ssl_connection::complete_handshake (const struct socket_events *ev) complete_handshake dpp::ssl_connection::complete_handshake const struct socket_events * ev

Called while SSL handshake is in progress. If the handshake completes, the state of the socket is progressed to an established state.

ev

Socket events for the socket

void void dpp::ssl_connection::enable_raw_tracing () enable_raw_tracing dpp::ssl_connection::enable_raw_tracing

For low-level debugging, calling this function will enable low level I/O logging for this connection to the logger. This can be very loud, and output a lot of data, so only enable it selectively where you need it.

Generally, you won't need this, it is a library development utility.

uint64_t uint64_t dpp::ssl_connection::get_bytes_in () get_bytes_in dpp::ssl_connection::get_bytes_in

Get total bytes received.

uint64_t bytes received

uint64_t uint64_t dpp::ssl_connection::get_bytes_out () get_bytes_out dpp::ssl_connection::get_bytes_out

Get total bytes sent.

uint64_t bytes sent

std::string std::string dpp::ssl_connection::get_cipher () get_cipher dpp::ssl_connection::get_cipher

Get SSL cipher name.

std::string ssl cipher name

uint64_t uint64_t dpp::ssl_connection::get_unique_id () const get_unique_id dpp::ssl_connection::get_unique_id

Every request made has a unique ID. This increments for every request, starting at 1. You can use this for statistics, or to associate requests and replies in external event loops.

Unique ID

bool virtual bool dpp::ssl_connection::handle_buffer (std::string &buffer) handle_buffer dpp::ssl_connection::handle_buffer handle_buffer handle_buffer handle_buffer std::string & buffer

Handle input from the input buffer. This function will be called until all data in the buffer has been processed and the buffer is empty.

buffer

the buffer content. Will be modified removing any processed front elements

bool True if the socket should remain connected

void virtual void dpp::ssl_connection::log (dpp::loglevel severity, const std::string &msg) const log dpp::ssl_connection::log log log dpp::loglevel severity const std::string & msg

Log a message.

severity

severity of log message

msg

Log message to send

void void dpp::ssl_connection::on_error (dpp::socket fd, const struct dpp::socket_events &, int error_code) on_error dpp::ssl_connection::on_error dpp::socket fd const struct dpp::socket_events & int error_code

Called when there is an error on the TCP socket.

fd

File descriptor

error_code

Error code

void void dpp::ssl_connection::on_read (dpp::socket fd, const struct dpp::socket_events &ev) on_read dpp::ssl_connection::on_read dpp::socket fd const struct dpp::socket_events & ev

Called when the TCP socket has data to read.

fd

File descriptor

ev

Socket events

void void dpp::ssl_connection::on_write (dpp::socket fd, const struct dpp::socket_events &e) on_write dpp::ssl_connection::on_write dpp::socket fd const struct dpp::socket_events & e

Called when the TCP socket can be written to without blocking.

fd

File descriptor

e

Socket events

void void dpp::ssl_connection::read_loop () read_loop dpp::ssl_connection::read_loop

Set up non blocking I/O and configure on_read, on_write and on_error.

std::exception

Any std::exception (or derivative) thrown from read_loop() indicates setup failed

void void dpp::ssl_connection::socket_write (const std::string_view data) socket_write dpp::ssl_connection::socket_write const std::string_view data

Write to the output buffer.

data

Data to be written to the buffer.

The data may not be written immediately and may be written at a later time to the socket.

Implements a simple non-blocking SSL stream connection.

dpp::discord_client
dpp::discord_voice_client
dpp::http_server_request
dpp::https_client
dpp::ssl_connection
dpp::websocket_client
K
T
bool
cache_policy_setting_t
double
dpp::cache_policy_t
channel_policy
emoji_policy
guild_policy
role_policy
user_policy
dpp::cluster
token
last_identify
cluster_id
intents
maxclusters
numshards
rest_ping
me
cache_policy
ws_mode
terminating
request_timeout
socketengine
on_voice_channel_effect_send
on_voice_state_update
on_voice_client_platform
on_voice_client_disconnect
on_voice_client_speaking
on_log
on_socket_close
on_guild_join_request_delete
on_interaction_create
on_slashcommand
on_button_click
on_autocomplete
on_select_click
on_message_context_menu
on_user_context_menu
on_form_submit
on_guild_delete
on_channel_delete
on_channel_update
on_ready
on_message_delete
on_guild_member_remove
on_resumed
on_guild_role_create
on_typing_start
on_message_reaction_add
on_guild_members_chunk
on_message_reaction_remove
on_guild_create
on_channel_create
on_message_reaction_remove_emoji
on_message_delete_bulk
on_guild_role_update
on_guild_role_delete
on_channel_pins_update
on_message_reaction_remove_all
on_voice_server_update
on_guild_emojis_update
on_guild_stickers_update
on_presence_update
on_webhooks_update
on_automod_rule_create
on_automod_rule_update
on_automod_rule_delete
on_automod_rule_execute
on_guild_member_add
on_invite_delete
on_guild_update
on_guild_integrations_update
on_guild_member_update
on_invite_create
on_message_update
on_user_update
on_message_create
on_message_poll_vote_add
on_message_poll_vote_remove
on_guild_audit_log_entry_create
on_guild_ban_add
on_guild_ban_remove
on_integration_create
on_integration_update
on_integration_delete
on_thread_create
on_thread_update
on_thread_delete
on_thread_list_sync
on_thread_member_update
on_thread_members_update
on_guild_scheduled_event_create
on_guild_scheduled_event_update
on_guild_scheduled_event_delete
on_guild_scheduled_event_user_add
on_guild_scheduled_event_user_remove
on_voice_buffer_send
on_voice_ready
on_voice_receive
on_voice_receive_combined
on_voice_track_marker
on_stage_instance_create
on_stage_instance_update
on_stage_instance_delete
on_entitlement_create
on_entitlement_update
on_entitlement_delete
dpp::event_router_t< T >
dpp::event_router_t< dpp::autocomplete_t >
< dpp::autocomplete_t >
dpp::event_router_t< dpp::automod_rule_create_t >
< dpp::automod_rule_create_t >
dpp::event_router_t< dpp::automod_rule_delete_t >
< dpp::automod_rule_delete_t >
dpp::event_router_t< dpp::automod_rule_execute_t >
< dpp::automod_rule_execute_t >
dpp::event_router_t< dpp::automod_rule_update_t >
< dpp::automod_rule_update_t >
dpp::event_router_t< dpp::button_click_t >
< dpp::button_click_t >
dpp::event_router_t< dpp::channel_create_t >
< dpp::channel_create_t >
dpp::event_router_t< dpp::channel_delete_t >
< dpp::channel_delete_t >
dpp::event_router_t< dpp::channel_pins_update_t >
< dpp::channel_pins_update_t >
dpp::event_router_t< dpp::channel_update_t >
< dpp::channel_update_t >
dpp::event_router_t< dpp::entitlement_create_t >
< dpp::entitlement_create_t >
dpp::event_router_t< dpp::entitlement_delete_t >
< dpp::entitlement_delete_t >
dpp::event_router_t< dpp::entitlement_update_t >
< dpp::entitlement_update_t >
dpp::event_router_t< dpp::form_submit_t >
< dpp::form_submit_t >
dpp::event_router_t< dpp::guild_audit_log_entry_create_t >
< dpp::guild_audit_log_entry_create_t >
dpp::event_router_t< dpp::guild_ban_add_t >
< dpp::guild_ban_add_t >
dpp::event_router_t< dpp::guild_ban_remove_t >
< dpp::guild_ban_remove_t >
dpp::event_router_t< dpp::guild_create_t >
< dpp::guild_create_t >
dpp::event_router_t< dpp::guild_delete_t >
< dpp::guild_delete_t >
dpp::event_router_t< dpp::guild_emojis_update_t >
< dpp::guild_emojis_update_t >
dpp::event_router_t< dpp::guild_integrations_update_t >
< dpp::guild_integrations_update_t >
dpp::event_router_t< dpp::guild_join_request_delete_t >
< dpp::guild_join_request_delete_t >
dpp::event_router_t< dpp::guild_member_add_t >
< dpp::guild_member_add_t >
dpp::event_router_t< dpp::guild_member_remove_t >
< dpp::guild_member_remove_t >
dpp::event_router_t< dpp::guild_member_update_t >
< dpp::guild_member_update_t >
dpp::event_router_t< dpp::guild_members_chunk_t >
< dpp::guild_members_chunk_t >
dpp::event_router_t< dpp::guild_role_create_t >
< dpp::guild_role_create_t >
dpp::event_router_t< dpp::guild_role_delete_t >
< dpp::guild_role_delete_t >
dpp::event_router_t< dpp::guild_role_update_t >
< dpp::guild_role_update_t >
dpp::event_router_t< dpp::guild_scheduled_event_create_t >
< dpp::guild_scheduled_event_create_t >
dpp::event_router_t< dpp::guild_scheduled_event_delete_t >
< dpp::guild_scheduled_event_delete_t >
dpp::event_router_t< dpp::guild_scheduled_event_update_t >
< dpp::guild_scheduled_event_update_t >
dpp::event_router_t< dpp::guild_scheduled_event_user_add_t >
< dpp::guild_scheduled_event_user_add_t >
dpp::event_router_t< dpp::guild_scheduled_event_user_remove_t >
< dpp::guild_scheduled_event_user_remove_t >
dpp::event_router_t< dpp::guild_stickers_update_t >
< dpp::guild_stickers_update_t >
dpp::event_router_t< dpp::guild_update_t >
< dpp::guild_update_t >
dpp::event_router_t< dpp::integration_create_t >
< dpp::integration_create_t >
dpp::event_router_t< dpp::integration_delete_t >
< dpp::integration_delete_t >
dpp::event_router_t< dpp::integration_update_t >
< dpp::integration_update_t >
dpp::event_router_t< dpp::interaction_create_t >
< dpp::interaction_create_t >
dpp::event_router_t< dpp::invite_create_t >
< dpp::invite_create_t >
dpp::event_router_t< dpp::invite_delete_t >
< dpp::invite_delete_t >
dpp::event_router_t< dpp::log_t >
< dpp::log_t >
dpp::event_router_t< dpp::message_context_menu_t >
< dpp::message_context_menu_t >
dpp::event_router_t< dpp::message_create_t >
< dpp::message_create_t >
dpp::event_router_t< dpp::message_delete_bulk_t >
< dpp::message_delete_bulk_t >
dpp::event_router_t< dpp::message_delete_t >
< dpp::message_delete_t >
dpp::event_router_t< dpp::message_poll_vote_add_t >
< dpp::message_poll_vote_add_t >
dpp::event_router_t< dpp::message_poll_vote_remove_t >
< dpp::message_poll_vote_remove_t >
dpp::event_router_t< dpp::message_reaction_add_t >
< dpp::message_reaction_add_t >
dpp::event_router_t< dpp::message_reaction_remove_all_t >
< dpp::message_reaction_remove_all_t >
dpp::event_router_t< dpp::message_reaction_remove_emoji_t >
< dpp::message_reaction_remove_emoji_t >
dpp::event_router_t< dpp::message_reaction_remove_t >
< dpp::message_reaction_remove_t >
dpp::event_router_t< dpp::message_update_t >
< dpp::message_update_t >
dpp::event_router_t< dpp::presence_update_t >
< dpp::presence_update_t >
dpp::event_router_t< dpp::ready_t >
< dpp::ready_t >
dpp::event_router_t< dpp::resumed_t >
< dpp::resumed_t >
dpp::event_router_t< dpp::select_click_t >
< dpp::select_click_t >
dpp::event_router_t< dpp::slashcommand_t >
< dpp::slashcommand_t >
dpp::event_router_t< dpp::socket_close_t >
< dpp::socket_close_t >
dpp::event_router_t< dpp::stage_instance_create_t >
< dpp::stage_instance_create_t >
dpp::event_router_t< dpp::stage_instance_delete_t >
< dpp::stage_instance_delete_t >
dpp::event_router_t< dpp::stage_instance_update_t >
< dpp::stage_instance_update_t >
dpp::event_router_t< dpp::thread_create_t >
< dpp::thread_create_t >
dpp::event_router_t< dpp::thread_delete_t >
< dpp::thread_delete_t >
dpp::event_router_t< dpp::thread_list_sync_t >
< dpp::thread_list_sync_t >
dpp::event_router_t< dpp::thread_member_update_t >
< dpp::thread_member_update_t >
dpp::event_router_t< dpp::thread_members_update_t >
< dpp::thread_members_update_t >
dpp::event_router_t< dpp::thread_update_t >
< dpp::thread_update_t >
dpp::event_router_t< dpp::typing_start_t >
< dpp::typing_start_t >
dpp::event_router_t< dpp::user_context_menu_t >
< dpp::user_context_menu_t >
dpp::event_router_t< dpp::user_update_t >
< dpp::user_update_t >
dpp::event_router_t< dpp::voice_buffer_send_t >
< dpp::voice_buffer_send_t >
dpp::event_router_t< dpp::voice_channel_effect_send_t >
< dpp::voice_channel_effect_send_t >
dpp::event_router_t< dpp::voice_client_disconnect_t >
< dpp::voice_client_disconnect_t >
dpp::event_router_t< dpp::voice_client_platform_t >
< dpp::voice_client_platform_t >
dpp::event_router_t< dpp::voice_client_speaking_t >
< dpp::voice_client_speaking_t >
dpp::event_router_t< dpp::voice_ready_t >
< dpp::voice_ready_t >
dpp::event_router_t< dpp::voice_receive_t >
< dpp::voice_receive_t >
dpp::event_router_t< dpp::voice_server_update_t >
< dpp::voice_server_update_t >
dpp::event_router_t< dpp::voice_state_update_t >
< dpp::voice_state_update_t >
dpp::event_router_t< dpp::voice_track_marker_t >
< dpp::voice_track_marker_t >
dpp::event_router_t< dpp::webhooks_update_t >
< dpp::webhooks_update_t >
dpp::json_interface< T >
dpp::json_interface< user >
< user >
dpp::managed
id
dpp::snowflake
value
dpp::socket_engine_base
owner
fds_mutex
fds
stats
dpp::socket_stats
active_fds
deletions
errors
iterations
reads
updates
writes
engine_type
dpp::ssl_connection
buffer
cipher
hostname
obuffer
port
private_key_file
public_key_file
sfd
ssl
ssl_close_mutex
last_tick
start
connect_retries
bytes_in
bytes_out
unique_id
connected
keepalive
plaintext
raw_trace
tcp_connect_done
timer_handle
owner
dpp::user
global_name
username
avatar
avatar_decoration
primary_guild
flags
discriminator
refcount
dpp::utility::iconhash
first
second
dpp::utility::primaryguild
id
enabled
tag
badge
int
openssl_connection *
size_t
atomic_bool
std::basic_string< Char >
std::basic_string_view< Char >
std::mutex
std::shared_mutex
std::string
std::string_view
std::unique_ptr< T >
ptr
std::unique_ptr< dpp::socket_engine_base >
ptr
< dpp::socket_engine_base >
std::unordered_map< K, T >
keys
elements
std::unordered_map< dpp::socket, std::unique_ptr< socket_events > >
< dpp::socket, std::unique_ptr< socket_events > >
time_t
uint16_t
uint32_t
uint64_t
uint8_t
websocket_protocol_t
- dpp::ssl_connection
  buffer
- dpp::ssl_connection
  bytes_in
- dpp::ssl_connection
  bytes_out
- dpp::ssl_connection
  cipher
- dpp::ssl_connection
  cleanup
- dpp::ssl_connection
  client_to_server_buffer
- dpp::ssl_connection
  client_to_server_length
- dpp::ssl_connection
  client_to_server_offset
- dpp::ssl_connection
  close
- dpp::ssl_connection
  complete_handshake
- dpp::ssl_connection
  connect
- dpp::ssl_connection
  connect_retries
- dpp::ssl_connection
  connected
- dpp::ssl_connection
  do_raw_trace
- dpp::ssl_connection
  enable_raw_tracing
- dpp::ssl_connection
  get_bytes_in
- dpp::ssl_connection
  get_bytes_out
- dpp::ssl_connection
  get_cipher
- dpp::ssl_connection
  get_unique_id
- dpp::ssl_connection
  handle_buffer
- dpp::ssl_connection
  hostname
- dpp::ssl_connection
  is_server
- dpp::ssl_connection
  keepalive
- dpp::ssl_connection
  last_tick
- dpp::ssl_connection
  log
- dpp::ssl_connection
  obuffer
- dpp::ssl_connection
  on_buffer_drained
- dpp::ssl_connection
  on_error
- dpp::ssl_connection
  on_read
- dpp::ssl_connection
  on_write
- dpp::ssl_connection
  one_second_timer
- dpp::ssl_connection
  out_mutex
- dpp::ssl_connection
  owner
- dpp::ssl_connection
  plaintext
- dpp::ssl_connection
  port
- dpp::ssl_connection
  private_key_file
- dpp::ssl_connection
  public_key_file
- dpp::ssl_connection
  raw_trace
- dpp::ssl_connection
  read_loop
- dpp::ssl_connection
  server_to_client_buffer
- dpp::ssl_connection
  sfd
- dpp::ssl_connection
  socket_write
- dpp::ssl_connection
  ssl
- dpp::ssl_connection
  ssl_close_mutex
- dpp::ssl_connection
  ssl_connection
- dpp::ssl_connection
  ssl_connection
- dpp::ssl_connection
  ssl_mutex
- dpp::ssl_connection
  start
- dpp::ssl_connection
  start_connecting
- dpp::ssl_connection
  tcp_connect_done
- dpp::ssl_connection
  timer_handle
- dpp::ssl_connection
  unique_id
- dpp::ssl_connection
  ~ssl_connection