Go to the documentation of this file.
105 struct buffer compress_buf;
106 struct buffer decompress_buf;
253 #ifdef ENABLE_FRAGMENT
274 #ifdef PACKET_TRUNCATION_CHECK
361 struct compress_context *comp_context;
455 #ifdef ENABLE_MANAGEMENT
459 #ifdef ENABLE_ASYNC_PUSH
487 #define CM_TOP_CLONE 2
488 #define CM_CHILD_UDP 3
489 #define CM_CHILD_TCP 4
523 #define EVENT_LOOP_CHECK_SIGNAL(c, func, arg) \
526 const int brk = func(arg); \
539 #define TLS_MODE(c) ((c)->c2.tls_multi != NULL)
540 #define PROTO_DUMP_FLAGS (check_debug_level(D_LINK_RW_VERBOSE) ? (PD_SHOW_DATA|PD_VERBOSE) : 0)
541 #define PROTO_DUMP(buf, gc) protocol_dump((buf), \
543 |(c->c2.tls_multi ? PD_TLS : 0) \
544 |(c->options.tls_auth_file ? md_kt_size(c->c1.ks.key_type.digest) : 0) \
545 |(c->options.tls_crypt_file || c->options.tls_crypt_v2_file ? PD_TLS_CRYPT : 0), \
549 #define MAX_PEER_ID 0xFFFFFF
bool pulled_options_digest_init_done
struct event_timeout route_wakeup
unsigned int event_set_status
struct tls_auth_standalone * tls_auth_standalone
TLS state structure required for the initial authentication of a client's connection attempt.
@ CAS_PENDING_DEFERRED
Waiting on an async option import handler.
const struct link_socket * accept_from
mbedtls_md_context_t hmac_ctx_t
Generic HMAC context.
struct tls_multi * tls_multi
TLS state structure for this VPN tunnel.
struct context_persist persist
Persistent context.
Fragmentation and reassembly state for one VPN tunnel instance.
mbedtls_md_context_t md_ctx_t
Generic message digest context.
struct tuntap * tuntap
Tun/tap virtual network interface.
counter_type link_write_bytes
bool tuntap_owned
Whether the tun/tap interface should be cleaned up when this context is cleaned up.
Contains all state information for one tunnel.
struct key_ctx auth_token_key
struct event_timeout auth_token_renewal_interval
counter_type tun_read_bytes
struct in6_addr push_ifconfig_ipv6_local
struct plugin_list * plugins
List of plug-ins.
bool push_ifconfig_defined
in_addr_t push_ifconfig_local
static void packet_id_persist_init(struct packet_id_persist *p)
struct event_timeout inactivity_interval
@ CAS_PENDING
Options import (Connect script/plugin, ccd,...)
struct context_0 * c0
Level 0 context.
struct context_buffers * buffers
struct event_timeout route_wakeup_expire
struct buffer decrypt_buf
md_ctx_t * pulled_options_state
int mode
Role of this context within the OpenVPN process.
struct link_socket_info * link_socket_info
This variable is used instead link_socket->info for P2MP UDP childs.
Packet geometry parameters.
Security parameter state for a single VPN tunnel.
struct link_socket_actual * to_link_addr
bool push_request_received
counter_type link_read_bytes
struct event_timeout occ_interval
struct key_ctx_bi tls_wrap_key
Level 0 context containing information related to the OpenVPN process.
struct route_list * route_list
List of routing information.
struct event_timeout wait_for_connect
struct context_2 c2
Level 2 context.
struct in6_addr push_ifconfig_ipv6_remote
Container for two sets of OpenSSL cipher and/or HMAC contexts for both sending and receiving directio...
struct gc_arena gc
Garbage collection arena for allocations done in the level 2 scope of this context_2 structure.
struct tls_root_ctx ssl_ctx
struct key_ctx tls_crypt_v2_server_key
struct gc_arena gc
Garbage collection arena for allocations done in the scope of this context structure.
struct key_type tls_auth_key_type
bool plugins_owned
Whether the plug-ins should be cleaned up when this context is cleaned up.
struct socks_proxy_info * socks_proxy
bool first_time
True on the first iteration of OpenVPN's main loop.
counter_type dco_write_bytes
struct route_ipv6_list * route_ipv6_list
Container for one set of cipher and/or HMAC contexts.
struct event_timeout ping_send_interval
in_addr_t push_ifconfig_local_alias
static bool is_cas_pending(enum multi_status cas)
time_t explicit_exit_notification_time_wait
int push_ifconfig_ipv6_netbits
struct frame frame_fragment
bool did_we_daemonize
Whether demonization has already taken place.
counter_type tun_write_bytes
hmac_ctx_t * session_id_hmac
the HMAC we use to generate and verify our syn cookie like session ids from the server.
Wrapper structure for dynamically allocated memory.
time_t sent_push_reply_expiry
time_t push_request_timeout
int scheduled_exit_signal
char * options_string_remote
struct event_set * event_set
struct buffer read_link_buf
struct timeval timeout_random_component
struct timeval timeval
Time to next event of timers and similar.
struct event_timeout explicit_exit_notification_interval
struct event_timeout scheduled_exit
struct link_socket * link_socket
int restart_sleep_seconds
bool ifconfig_pool_persist_owned
struct http_proxy_info * http_proxy
Garbage collection arena used to keep track of dynamically allocated memory.
struct signal_info * sig
Internal error signaling object.
struct buffer tls_crypt_v2_wkc
Wrapped client key.
Level 1 context containing state that persists across SIGUSR1 restarts.
struct event_timeout occ_mtu_load_test_interval
struct env_set * es
Set of environment variables.
time_t update_timeout_random_component
struct event_timeout packet_id_persist_interval
struct man_def_auth_context mda_context
struct fragment_master * fragment
Structure that wraps the TLS context.
counter_type dco_read_bytes
in_addr_t push_ifconfig_remote_netmask
struct user_pass * auth_user_pass
Username and password for authentication.
struct key2 original_wrap_keydata
original tls-crypt key preserved to xored into the tls_crypt renegotiation key
struct sha256_digest pulled_options_digest
struct sha256_digest pulled_options_digest_save
Hash of option strings received from the remote OpenVPN server.
struct buffer encrypt_buf
struct status_output * status_output
@ CAS_PENDING_DEFERRED_PARTIAL
at least handler succeeded but another is still pending
struct link_socket_actual from
struct ifconfig_pool_persist * ifconfig_pool_persist
struct packet_id_persist pid_persist
Container for bidirectional cipher and HMAC key material.
counter_type link_read_bytes_auth
struct event_timeout push_request_interval
struct event_timeout server_poll_interval
bool push_ifconfig_ipv6_defined
Level 2 context containing state that is reset on both SIGHUP and SIGUSR1 restarts.
Wrapper struct to pass around SHA256 digests.
char * options_string_local
struct event_timeout session_interval
struct buffer read_tun_buf
struct event_timeout ping_rec_interval
time_t coarse_timer_wakeup
struct cached_dns_entry * dns_cache
struct key_ctx_bi static_key
Security parameter state for processing data channel packets.
struct context_1 c1
Level 1 context.
openvpn_net_ctx_t net_ctx
Networking API opaque context.