OpenVPN
multi_instance Struct Reference

Server-mode state structure for one single VPN tunnel. More...

#include <multi.h>

Collaboration diagram for multi_instance:

Data Fields

struct schedule_entry se
struct event_arg ev_arg
 this struct will store a pointer to either mi or link_socket, depending on the event type, to keep it accessible it's placed within the same struct it points to.
struct gc_arena gc
bool halt
int refcount
int route_count
time_t created
 Time at which a VPN tunnel instance was created.
struct timeval wakeup
struct mroute_addr real
 External network address of the remote peer.
ifconfig_pool_handle vaddr_handle
char msg_prefix [MULTI_PREFIX_MAX_LENGTH]
unsigned int tcp_rwflags
struct mbuf_set * tcp_link_out_deferred
bool socket_set_called
in_addr_t reporting_addr
struct in6_addr reporting_addr_ipv6
bool did_real_hash
 Indicates that the real address/port of the client is hashed in the multi_context m->hash table.
struct session_id sid_hashed_value
 If this is multi_instance is hashed in the sid lookup table the session id here is a non-null session id and the hash map's key pointer points to this field (the value pointer points to the whole struct).
bool did_cid_hash
struct buffer_list * cc_config
bool did_iroutes
int n_clients_delta
struct context context
 The context structure storing state for this VPN tunnel.
struct client_connect_defer_state client_connect_defer_state

Detailed Description

Server-mode state structure for one single VPN tunnel.

This structure is used by OpenVPN processes running in server-mode to store state information related to one single VPN tunnel.

The Structure of VPN tunnel state storage related page describes the role the structure plays when OpenVPN is running in server-mode.

Definition at line 101 of file multi.h.

Field Documentation

◆ cc_config

struct buffer_list* multi_instance::cc_config

Definition at line 145 of file multi.h.

Referenced by management_client_auth(), multi_client_connect_mda(), and set_cc_config().

◆ client_connect_defer_state

◆ context

struct context multi_instance::context

The context structure storing state for this VPN tunnel.

Definition at line 150 of file multi.h.

Referenced by ccs_delete_config_file(), ccs_delete_deferred_ret_file(), ccs_gen_config_file(), ccs_gen_deferred_ret_file(), dco_get_peer_stats_multi(), handle_connection_attempt(), learn_address_script(), management_callback_kill_by_cn(), management_check_bytecount_server(), management_client_auth(), management_client_pending_auth(), management_get_peer_info(), management_kill_by_cid(), multi_add_iroutes(), multi_assign_peer_id(), multi_bcast(), multi_check_dest_addr_allowed(), multi_client_connect_call_plugin_v1(), multi_client_connect_call_plugin_v2(), multi_client_connect_call_script(), multi_client_connect_compress_migrate(), multi_client_connect_early_setup(), multi_client_connect_late_setup(), multi_client_connect_mda(), multi_client_connect_post(), multi_client_connect_post_plugin(), multi_client_connect_setenv(), multi_client_disconnect_script(), multi_client_disconnect_setenv(), multi_client_setup_dco_initial(), multi_close_instance(), multi_close_instance_on_signal(), multi_connection_established(), multi_create_instance(), multi_del_iroutes(), multi_delete_dup(), multi_get_context(), multi_get_instance_udp_data(), multi_get_queue(), multi_instance_string(), multi_io_action(), multi_io_dispatch(), multi_io_set_global_rw_flags(), multi_learn_in6_addr(), multi_learn_in_addr_t(), multi_print_status(), multi_process_drop_outgoing_tun(), multi_process_float(), multi_process_incoming_link(), multi_process_incoming_link_data(), multi_process_incoming_tun(), multi_process_outgoing_link_dowork(), multi_process_outgoing_tun(), multi_process_post(), multi_push_restart_schedule_exit(), multi_schedule_context_wakeup(), multi_select_virtual_addr(), multi_set_virtual_addr_env(), multi_signal_instance(), multi_tcp_dereference_instance(), multi_tcp_instance_specific_init(), multi_tcp_process_outgoing_link(), multi_tcp_process_outgoing_link_ready(), override_locked_username(), p2mp_iow_flags(), route_quota_exceeded(), route_quota_test(), send_push_update(), send_single_push_update(), setup2(), support_push_update(), unlearn_ifconfig(), unlearn_ifconfig_ipv6(), update_vhash(), and vlan_process_outgoing_tun().

◆ created

time_t multi_instance::created

Time at which a VPN tunnel instance was created.

This parameter is set by the multi_create_instance() function.

Definition at line 116 of file multi.h.

Referenced by multi_client_connect_setenv(), multi_client_disconnect_setenv(), multi_create_instance(), and multi_print_status().

◆ did_cid_hash

bool multi_instance::did_cid_hash

Definition at line 144 of file multi.h.

Referenced by multi_close_instance(), and multi_create_instance().

◆ did_iroutes

bool multi_instance::did_iroutes

Definition at line 147 of file multi.h.

Referenced by multi_add_iroutes().

◆ did_real_hash

bool multi_instance::did_real_hash

Indicates that the real address/port of the client is hashed in the multi_context m->hash table.

Definition at line 136 of file multi.h.

Referenced by multi_client_connect_real_addr(), and multi_close_instance().

◆ ev_arg

struct event_arg multi_instance::ev_arg

this struct will store a pointer to either mi or link_socket, depending on the event type, to keep it accessible it's placed within the same struct it points to.

Definition at line 107 of file multi.h.

Referenced by multi_create_instance(), multi_io_process_io(), and multi_io_set_global_rw_flags().

◆ gc

struct gc_arena multi_instance::gc

Definition at line 112 of file multi.h.

Referenced by multi_create_instance(), multi_instance_dec_refcount(), and test_sid_hash_list().

◆ halt

◆ msg_prefix

char multi_instance::msg_prefix[MULTI_PREFIX_MAX_LENGTH]

Definition at line 124 of file multi.h.

Referenced by generate_prefix(), set_prefix(), and ungenerate_prefix().

◆ n_clients_delta

int multi_instance::n_clients_delta

Definition at line 148 of file multi.h.

Referenced by multi_close_instance(), and multi_connection_established().

◆ real

◆ refcount

int multi_instance::refcount

Definition at line 114 of file multi.h.

Referenced by multi_instance_dec_refcount(), and multi_instance_inc_refcount().

◆ reporting_addr

in_addr_t multi_instance::reporting_addr

◆ reporting_addr_ipv6

struct in6_addr multi_instance::reporting_addr_ipv6

◆ route_count

int multi_instance::route_count

Definition at line 115 of file multi.h.

Referenced by route_quota_dec(), route_quota_inc(), and route_quota_test().

◆ se

struct schedule_entry multi_instance::se

Definition at line 103 of file multi.h.

◆ sid_hashed_value

struct session_id multi_instance::sid_hashed_value

If this is multi_instance is hashed in the sid lookup table the session id here is a non-null session id and the hash map's key pointer points to this field (the value pointer points to the whole struct).

Definition at line 141 of file multi.h.

Referenced by multi_close_instance(), multi_hash_sid_add(), and multi_hash_sid_remove().

◆ socket_set_called

bool multi_instance::socket_set_called

Definition at line 129 of file multi.h.

Referenced by multi_io_set_global_rw_flags(), and multi_tcp_dereference_instance().

◆ tcp_link_out_deferred

◆ tcp_rwflags

unsigned int multi_instance::tcp_rwflags

Definition at line 127 of file multi.h.

Referenced by multi_io_set_global_rw_flags().

◆ vaddr_handle

ifconfig_pool_handle multi_instance::vaddr_handle

◆ wakeup

struct timeval multi_instance::wakeup

Definition at line 120 of file multi.h.

Referenced by multi_schedule_context_wakeup().


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