OpenVPN
manage.h
Go to the documentation of this file.
1/*
2 * OpenVPN -- An application to securely tunnel IP networks
3 * over a single TCP/UDP port, with support for SSL/TLS-based
4 * session authentication and key exchange,
5 * packet encryption, packet authentication, and
6 * packet compression.
7 *
8 * Copyright (C) 2002-2026 OpenVPN Inc <sales@openvpn.net>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, see <https://www.gnu.org/licenses/>.
21 */
22
23#ifndef MANAGE_H
24#define MANAGE_H
25
26/* management_open flags */
27#define MF_SERVER (1u << 0)
28#define MF_QUERY_PASSWORDS (1u << 1)
29#define MF_HOLD (1u << 2)
30#define MF_SIGNAL (1u << 3)
31#define MF_FORGET_DISCONNECT (1u << 4)
32#define MF_CONNECT_AS_CLIENT (1u << 5)
33#define MF_CLIENT_AUTH (1u << 6)
34/* #define MF_CLIENT_PF (1u << 7) *REMOVED FEATURE* */
35#define MF_UNIX_SOCK (1u << 8)
36#define MF_EXTERNAL_KEY (1u << 9)
37#define MF_EXTERNAL_KEY_NOPADDING (1u << 10)
38#define MF_EXTERNAL_KEY_PKCS1PAD (1u << 11)
39#define MF_UP_DOWN (1u << 12)
40#define MF_QUERY_REMOTE (1u << 13)
41#define MF_QUERY_PROXY (1u << 14)
42#define MF_EXTERNAL_CERT (1u << 15)
43#define MF_EXTERNAL_KEY_PSSPAD (1u << 16)
44#define MF_EXTERNAL_KEY_DIGEST (1u << 17)
45
46#ifdef ENABLE_MANAGEMENT
47
48#include "misc.h"
49#include "event.h"
50#include "socket_util.h"
51#include "mroute.h"
52
53#define MANAGEMENT_VERSION 5
54#define MANAGEMENT_N_PASSWORD_RETRIES 3
55#define MANAGEMENT_LOG_HISTORY_INITIAL_SIZE 100
56#define MANAGEMENT_ECHO_BUFFER_SIZE 100
57#define MANAGEMENT_STATE_BUFFER_SIZE 100
58
59/*
60 * Management-interface-based deferred authentication
61 */
63{
64 unsigned long cid;
65
66#define DAF_CONNECTION_ESTABLISHED (1u << 0)
67#define DAF_CONNECTION_CLOSED (1u << 1)
68#define DAF_INITIAL_AUTH (1u << 2)
69 unsigned int flags;
70
71 unsigned int mda_key_id_counter;
72};
73
74/*
75 * Manage build-up of command line
76 */
78{
79 struct buffer buf;
81};
82
83struct command_line *command_line_new(const size_t buf_len);
84
85void command_line_free(struct command_line *cl);
86
87void command_line_add(struct command_line *cl, const unsigned char *buf, const size_t len);
88
89const char *command_line_get(struct command_line *cl);
90
91void command_line_reset(struct command_line *cl);
92
93void command_line_next(struct command_line *cl);
94
95/*
96 * Manage log file history
97 */
98
100{
101 unsigned int msg_flags;
102 int state;
104};
105
116
117#define LOG_PRINT_LOG_PREFIX (1u << 0)
118#define LOG_PRINT_ECHO_PREFIX (1u << 1)
119#define LOG_PRINT_STATE_PREFIX (1u << 2)
120
121#define LOG_PRINT_INT_DATE (1u << 3)
122#define LOG_PRINT_MSG_FLAGS (1u << 4)
123#define LOG_PRINT_STATE (1u << 5)
124#define LOG_PRINT_LOCAL_IP (1u << 6)
125
126#define LOG_PRINT_CRLF (1u << 7)
127#define LOG_FATAL_NOTIFY (1u << 8)
128
129#define LOG_PRINT_INTVAL (1u << 9)
130
131#define LOG_PRINT_REMOTE_IP (1u << 10)
132
133#define LOG_ECHO_TO_LOG (1u << 11)
134
135const char *log_entry_print(const struct log_entry *e, unsigned int flags, struct gc_arena *gc);
136
138{
139 int base;
140 int size;
143};
144
145struct log_history *log_history_init(const int capacity);
146
147void log_history_close(struct log_history *h);
148
149void log_history_add(struct log_history *h, const struct log_entry *le);
150
151void log_history_resize(struct log_history *h, const int capacity);
152
153const struct log_entry *log_history_ref(const struct log_history *h, const int index);
154
155static inline int
157{
158 return h->size;
159}
160
161static inline int
163{
164 return h->capacity;
165}
166
167/*
168 * Callbacks for 'status' and 'kill' commands.
169 * Also for management-based deferred authentication and packet filter.
170 */
172{
173 void *arg;
174
175#define MCF_SERVER (1u << 0) /* is OpenVPN being run as a server? */
176 unsigned int flags;
177
178 void (*status)(void *arg, const int version, struct status_output *so);
179 void (*show_net)(void *arg, const msglvl_t msglevel);
180 int (*kill_by_cn)(void *arg, const char *common_name);
181 int (*kill_by_addr)(void *arg, const in_addr_t addr, const uint16_t port, const uint8_t proto);
182 void (*delete_event)(void *arg, event_t event);
183 int (*n_clients)(void *arg);
184 bool (*send_cc_message)(void *arg, const char *message, const char *parameter);
185 bool (*kill_by_cid)(void *arg, const unsigned long cid, const char *kill_msg);
186 bool (*client_auth)(void *arg, const unsigned long cid, const unsigned int mda_key_id,
187 const bool auth, const char *reason, const char *client_reason,
188 struct buffer_list *cc_config); /* ownership transferred */
189 bool (*client_pending_auth)(void *arg, const unsigned long cid, const unsigned int kid,
190 const char *extra, unsigned int timeout);
191 char *(*get_peer_info)(void *arg, const unsigned long cid);
192 bool (*proxy_cmd)(void *arg, const char **p);
193 bool (*remote_cmd)(void *arg, const char **p);
194#ifdef TARGET_ANDROID
195 int (*network_change)(void *arg, bool samenetwork);
196#endif
197 unsigned int (*remote_entry_count)(void *arg);
198 bool (*remote_entry_get)(void *arg, unsigned int index, char **remote);
199 bool (*push_update_broadcast)(void *arg, const char *options);
200 bool (*push_update_by_cid)(void *arg, unsigned long cid, const char *options);
201};
202
203/*
204 * Management object, split into three components:
205 *
206 * struct man_persist : Data elements which are persistent across
207 * man_connection open and close.
208 *
209 * struct man_settings : management parameters.
210 *
211 * struct man_connection : created on socket binding and listen,
212 * deleted on socket unbind, may
213 * handle multiple sequential client
214 * connections.
215 */
216
218{
220
223
226
227 struct log_history *echo; /* saved --echo strings */
229
231
232 const char *special_state_msg;
233
236};
237
239{
241 unsigned int flags; /* MF_x flags */
242 struct addrinfo *local;
243#if UNIX_SOCK_SUPPORT
244 struct sockaddr_un local_unix;
245 struct platform_state_user user;
246 struct platform_state_group group;
247#endif
249 struct user_pass up;
253
254/* flags for handling the management interface "signal" command */
255#define MANSIG_IGNORE_USR1_HUP (1u << 0)
256#define MANSIG_MAP_USR1_TO_HUP (1u << 1)
257#define MANSIG_MAP_USR1_TO_TERM (1u << 2)
258 unsigned int mansig;
259};
260
261/* up_query modes */
262#define UP_QUERY_DISABLED 0
263#define UP_QUERY_USER_PASS 1
264#define UP_QUERY_PASS 2
265#define UP_QUERY_NEED_OK 3
266#define UP_QUERY_NEED_STR 4
267#define UP_QUERY_USERNAME 5
268
269/* states */
270#define MS_INITIAL 0 /* all sockets are closed */
271#define MS_LISTEN 1 /* no client is connected */
272#define MS_CC_WAIT_READ 2 /* client is connected, waiting for read on socket */
273#define MS_CC_WAIT_WRITE 3 /* client is connected, waiting for ability to write to socket */
274
276{
277 int state;
278
282
283#ifdef _WIN32
285#endif
286
287 bool halt;
290
293
294#define IEC_UNDEF 0
295#define IEC_CLIENT_AUTH 1
296/* #define IEC_CLIENT_PF 2 *REMOVED FEATURE* */
297#define IEC_RSA_SIGN 3
298#define IEC_CERTIFICATE 4
299#define IEC_PK_SIGN 5
302 unsigned long in_extra_cid;
303 unsigned int in_extra_kid;
304#define EKS_UNDEF 0
305#define EKS_SOLICIT 1
306#define EKS_INPUT 2
307#define EKS_READY 3
312 struct event_set *es;
314
320
321 const char *up_query_type;
324
325#ifdef TARGET_ANDROID
326 int fdtosend;
327 int lastfdreceived;
328#endif
330};
331
338
339extern struct management *management;
340
341struct user_pass;
342
343struct management *management_init(void);
344
345bool management_open(struct management *man, const char *addr, const char *port,
346 const char *pass_file, const char *client_user, const char *client_group,
347 const int log_history_cache, const int echo_buffer_size,
348 const int state_buffer_size, const int remap_sigusr1,
349 const unsigned int flags);
350
351void management_close(struct management *man);
352
353void management_post_tunnel_open(struct management *man, const in_addr_t tun_local_ip);
354
356
357void management_socket_set(struct management *man, struct event_set *es, void *arg,
358 unsigned int *persistent);
359
360void management_io(struct management *man);
361
362void management_set_callback(struct management *man, const struct management_callback *cb);
363
364void management_clear_callback(struct management *man);
365
366bool management_query_user_pass(struct management *man, struct user_pass *up, const char *type,
367 const unsigned int flags, const char *static_challenge);
368
369#ifdef TARGET_ANDROID
370bool management_android_control(struct management *man, const char *command, const char *msg);
371
372#define ANDROID_KEEP_OLD_TUN 1
373#define ANDROID_OPEN_BEFORE_CLOSE 2
374int managment_android_persisttun_action(struct management *man);
375
376#endif
377
378bool management_would_hold(struct management *man);
379
380bool management_hold(struct management *man, int holdtime);
381
382void management_event_loop_n_seconds(struct management *man, int sec);
383
384void management_up_down(struct management *man, const char *updown, const struct env_set *es);
385
386void management_notify(struct management *man, const char *severity, const char *type,
387 const char *text);
388
389void management_notify_generic(struct management *man, const char *str);
390
392 const unsigned int auth_id,
393 struct man_def_auth_context *mdac,
394 const struct env_set *es);
395
397 struct man_def_auth_context *mdac, const struct env_set *es);
398
400 struct man_def_auth_context *mdac, const struct env_set *es);
401
403 const struct mroute_addr *addr, const bool primary);
404
405void management_notify_client_cr_response(unsigned mda_key_id,
406 const struct man_def_auth_context *mdac,
407 const struct env_set *es, const char *response);
408
409char *management_query_pk_sig(struct management *man, const char *b64_data, const char *algorithm);
410
411char *management_query_cert(struct management *man, const char *cert_name);
412
413static inline bool
415{
417}
418
419static inline bool
424
425static inline bool
427{
429}
430
431static inline bool
433{
434 return BOOL_CAST(man->settings.flags & MF_QUERY_PROXY);
435}
436
437
438static inline bool
440{
441 return man && BOOL_CAST(man->settings.flags & MF_CLIENT_AUTH);
442}
443
444/*
445 * OpenVPN tells the management layer what state it's in
446 */
447
448/* client/server states */
449#define OPENVPN_STATE_INITIAL 0 /* Initial, undefined state */
450#define OPENVPN_STATE_CONNECTING 1 /* Management interface has been initialized */
451#define OPENVPN_STATE_ASSIGN_IP 2 /* Assigning IP address to virtual network interface */
452#define OPENVPN_STATE_ADD_ROUTES 3 /* Adding routes to system */
453#define OPENVPN_STATE_CONNECTED 4 /* Initialization sequence completed */
454#define OPENVPN_STATE_RECONNECTING 5 /* Restart */
455#define OPENVPN_STATE_EXITING 6 /* Exit */
456
457/* client-only states */
458#define OPENVPN_STATE_WAIT 7 /* Waiting for initial response from server */
459#define OPENVPN_STATE_AUTH 8 /* Authenticating with server */
460#define OPENVPN_STATE_GET_CONFIG 9 /* Downloading configuration from server */
461#define OPENVPN_STATE_RESOLVE 10 /* DNS lookup */
462#define OPENVPN_STATE_TCP_CONNECT 11 /* Connecting to TCP server */
463#define OPENVPN_STATE_AUTH_PENDING \
464 12 /* Waiting in auth-pending mode \
465 * technically variant of GET_CONFIG */
467#define OPENVPN_STATE_CLIENT_BASE 7 /* Base index of client-only states */
468
469void management_set_state(struct management *man, const int state, const char *detail,
470 const in_addr_t *tun_local_ip, const struct in6_addr *tun_local_ip6,
471 const struct openvpn_sockaddr *local_addr,
472 const struct openvpn_sockaddr *remote_addr);
473
474/*
475 * The management object keeps track of OpenVPN --echo
476 * parameters.
477 */
478void management_echo(struct management *man, const char *string, const bool pull);
479
480/*
481 * OpenVPN calls here to indicate a password failure
482 */
483
484void management_auth_failure(struct management *man, const char *type, const char *reason);
485
486/*
487 * Echo an authentication token to management interface
488 */
489void management_auth_token(struct management *man, const char *token);
490
491/*
492 * These functions drive the bytecount in/out counters.
493 */
494
495void management_check_bytecount_client(struct context *c, struct management *man, struct timeval *timeval);
496
497void management_check_bytecount_server(struct multi_context *multi, struct timeval *timeval);
498
499void man_persist_client_stats(struct management *man, struct context *c);
500
501#endif /* ifdef ENABLE_MANAGEMENT */
502
507void management_sleep(const int n);
508
509#endif /* ifndef MANAGE_H */
static int buf_len(const struct buffer *buf)
Definition buffer.h:254
uint64_t counter_type
Definition common.h:31
void management_pre_tunnel_close(struct management *man)
Definition manage.c:3121
void management_auth_failure(struct management *man, const char *type, const char *reason)
Definition manage.c:3130
void log_history_close(struct log_history *h)
Definition manage.c:4096
void management_check_bytecount_server(struct multi_context *multi, struct timeval *timeval)
Definition manage.c:4205
static bool management_query_remote_enabled(const struct management *man)
Definition manage.h:426
void management_notify_client_close(struct management *management, struct man_def_auth_context *mdac, const struct env_set *es)
Definition manage.c:3039
static int log_history_capacity(const struct log_history *h)
Definition manage.h:162
#define MF_CLIENT_AUTH
Definition manage.h:33
void management_socket_set(struct management *man, struct event_set *es, void *arg, unsigned int *persistent)
Definition manage.c:3165
void command_line_free(struct command_line *cl)
Definition manage.c:3922
void command_line_next(struct command_line *cl)
Definition manage.c:3965
void management_clear_callback(struct management *man)
Definition manage.c:2793
char * management_query_cert(struct management *man, const char *cert_name)
Definition manage.c:3823
struct command_line * command_line_new(const size_t buf_len)
Definition manage.c:3905
#define MS_CC_WAIT_WRITE
Definition manage.h:273
bool management_hold(struct management *man, int holdtime)
Definition manage.c:3852
static bool management_query_proxy_enabled(const struct management *man)
Definition manage.h:432
#define MS_CC_WAIT_READ
Definition manage.h:272
void management_set_state(struct management *man, const int state, const char *detail, const in_addr_t *tun_local_ip, const struct in6_addr *tun_local_ip6, const struct openvpn_sockaddr *local_addr, const struct openvpn_sockaddr *remote_addr)
Definition manage.c:2802
static bool management_query_user_pass_enabled(const struct management *man)
Definition manage.h:420
struct log_history * log_history_init(const int capacity)
Definition manage.c:4075
void management_learn_addr(struct management *management, struct man_def_auth_context *mdac, const struct mroute_addr *addr, const bool primary)
Definition manage.c:3051
struct management * management_init(void)
Definition manage.c:2723
void command_line_reset(struct command_line *cl)
Definition manage.c:3915
#define MF_QUERY_PROXY
Definition manage.h:41
bool management_would_hold(struct management *man)
Definition manage.c:3842
bool management_query_user_pass(struct management *man, struct user_pass *up, const char *type, const unsigned int flags, const char *static_challenge)
Definition manage.c:3528
static bool management_connected(const struct management *man)
Definition manage.h:414
void log_history_add(struct log_history *h, const struct log_entry *le)
Definition manage.c:4103
static int log_history_size(const struct log_history *h)
Definition manage.h:156
void management_event_loop_n_seconds(struct management *man, int sec)
Definition manage.c:3475
void management_close(struct management *man)
Definition manage.c:2776
#define MF_QUERY_REMOTE
Definition manage.h:40
const char * log_entry_print(const struct log_entry *e, unsigned int flags, struct gc_arena *gc)
Definition manage.c:3977
void management_auth_token(struct management *man, const char *token)
Definition manage.c:3143
#define MF_QUERY_PASSWORDS
Definition manage.h:28
void management_io(struct management *man)
Definition manage.c:3203
bool management_open(struct management *man, const char *addr, const char *port, const char *pass_file, const char *client_user, const char *client_group, const int log_history_cache, const int echo_buffer_size, const int state_buffer_size, const int remap_sigusr1, const unsigned int flags)
Definition manage.c:2737
void management_notify_generic(struct management *man, const char *str)
Definition manage.c:2953
void management_connection_established(struct management *management, struct man_def_auth_context *mdac, const struct env_set *es)
Definition manage.c:3029
void man_persist_client_stats(struct management *man, struct context *c)
Definition manage.c:4246
static bool management_enable_def_auth(const struct management *man)
Definition manage.h:439
void management_set_callback(struct management *man, const struct management_callback *cb)
Definition manage.c:2786
void management_notify_client_cr_response(unsigned mda_key_id, const struct man_def_auth_context *mdac, const struct env_set *es, const char *response)
Definition manage.c:3009
void management_echo(struct management *man, const char *string, const bool pull)
Definition manage.c:3064
const struct log_entry * log_history_ref(const struct log_history *h, const int index)
Definition manage.c:4145
void management_check_bytecount_client(struct context *c, struct management *man, struct timeval *timeval)
Definition manage.c:4182
void management_up_down(struct management *man, const char *updown, const struct env_set *es)
Definition manage.c:2937
char * management_query_pk_sig(struct management *man, const char *b64_data, const char *algorithm)
Definition manage.c:3797
void command_line_add(struct command_line *cl, const unsigned char *buf, const size_t len)
Definition manage.c:3935
const char * command_line_get(struct command_line *cl)
Definition manage.c:3950
void management_sleep(const int n)
A sleep function that services the management layer for n seconds rather than doing nothing.
Definition manage.c:4158
void management_notify_client_needing_auth(struct management *management, const unsigned int auth_id, struct man_def_auth_context *mdac, const struct env_set *es)
Definition manage.c:2987
void log_history_resize(struct log_history *h, const int capacity)
Definition manage.c:4124
void management_notify(struct management *man, const char *severity, const char *type, const char *text)
Definition manage.c:2947
void management_post_tunnel_open(struct management *man, const in_addr_t tun_local_ip)
Definition manage.c:3098
#define BOOL_CAST(x)
Definition basic.h:26
#define msg(flags,...)
Definition error.h:152
unsigned int msglvl_t
Definition error.h:77
Wrapper structure for dynamically allocated memory.
Definition buffer.h:60
struct buffer residual
Definition manage.h:80
struct buffer buf
Definition manage.h:79
Contains all state information for one tunnel.
Definition openvpn.h:471
Garbage collection arena used to keep track of dynamically allocated memory.
Definition buffer.h:116
Definition manage.h:107
struct in6_addr local_ip6
Definition manage.h:111
struct openvpn_sockaddr local_sock
Definition manage.h:112
struct openvpn_sockaddr remote_sock
Definition manage.h:113
time_t timestamp
Definition manage.h:108
const char * string
Definition manage.h:109
in_addr_t local_ip
Definition manage.h:110
union log_entry_union u
Definition manage.h:114
int capacity
Definition manage.h:141
struct log_entry * array
Definition manage.h:142
struct event_set * es
Definition manage.h:312
unsigned long in_extra_cid
Definition manage.h:302
const char * up_query_type
Definition manage.h:321
bool password_verified
Definition manage.h:288
int env_filter_level
Definition manage.h:313
struct user_pass up_query
Definition manage.h:323
socket_descriptor_t sd_top
Definition manage.h:279
struct buffer_list * ext_cert_input
Definition manage.h:311
struct command_line * in
Definition manage.h:291
unsigned int in_extra_kid
Definition manage.h:303
struct openvpn_sockaddr remote
Definition manage.h:281
socket_descriptor_t sd_cli
Definition manage.h:280
struct buffer_list * ext_key_input
Definition manage.h:309
int up_query_mode
Definition manage.h:322
int bytecount_update_seconds
Definition manage.h:318
int in_extra_cmd
Definition manage.h:300
struct buffer_list * in_extra
Definition manage.h:301
bool echo_realtime
Definition manage.h:317
bool state_realtime
Definition manage.h:315
struct event_timeout bytecount_update_interval
Definition manage.h:319
int ext_cert_state
Definition manage.h:310
struct buffer_list * out
Definition manage.h:292
int password_tries
Definition manage.h:289
int client_version
Definition manage.h:329
bool log_realtime
Definition manage.h:316
struct net_event_win32 ne32
Definition manage.h:284
int ext_key_state
Definition manage.h:308
unsigned long cid
Definition manage.h:64
unsigned int mda_key_id_counter
Definition manage.h:71
unsigned int flags
Definition manage.h:69
counter_type bytes_in
Definition manage.h:234
struct log_history * state
Definition manage.h:228
struct management_callback callback
Definition manage.h:225
struct log_history * log
Definition manage.h:221
struct virtual_output vout
Definition manage.h:222
bool standalone_disabled
Definition manage.h:224
bool defined
Definition manage.h:219
bool hold_release
Definition manage.h:230
struct log_history * echo
Definition manage.h:227
const char * special_state_msg
Definition manage.h:232
counter_type bytes_out
Definition manage.h:235
bool management_over_tunnel
Definition manage.h:248
struct addrinfo * local
Definition manage.h:242
unsigned int flags
Definition manage.h:241
int echo_buffer_size
Definition manage.h:251
unsigned int mansig
Definition manage.h:258
int state_buffer_size
Definition manage.h:252
bool defined
Definition manage.h:240
int log_history_cache
Definition manage.h:250
struct user_pass up
Definition manage.h:249
bool(* client_auth)(void *arg, const unsigned long cid, const unsigned int mda_key_id, const bool auth, const char *reason, const char *client_reason, struct buffer_list *cc_config)
Definition manage.h:186
int(* kill_by_addr)(void *arg, const in_addr_t addr, const uint16_t port, const uint8_t proto)
Definition manage.h:181
void(* delete_event)(void *arg, event_t event)
Definition manage.h:182
bool(* push_update_broadcast)(void *arg, const char *options)
Definition manage.h:199
bool(* push_update_by_cid)(void *arg, unsigned long cid, const char *options)
Definition manage.h:200
bool(* client_pending_auth)(void *arg, const unsigned long cid, const unsigned int kid, const char *extra, unsigned int timeout)
Definition manage.h:189
int(* n_clients)(void *arg)
Definition manage.h:183
void(* status)(void *arg, const int version, struct status_output *so)
Definition manage.h:178
bool(* remote_entry_get)(void *arg, unsigned int index, char **remote)
Definition manage.h:198
unsigned int(* remote_entry_count)(void *arg)
Definition manage.h:197
bool(* send_cc_message)(void *arg, const char *message, const char *parameter)
Definition manage.h:184
bool(* proxy_cmd)(void *arg, const char **p)
Definition manage.h:192
void(* show_net)(void *arg, const msglvl_t msglevel)
Definition manage.h:179
unsigned int flags
Definition manage.h:176
bool(* remote_cmd)(void *arg, const char **p)
Definition manage.h:193
int(* kill_by_cn)(void *arg, const char *common_name)
Definition manage.h:180
bool(* kill_by_cid)(void *arg, const unsigned long cid, const char *kill_msg)
Definition manage.h:185
struct man_persist persist
Definition manage.h:334
struct man_connection connection
Definition manage.h:336
struct man_settings settings
Definition manage.h:335
Main OpenVPN server state structure.
Definition multi.h:163
SOCKET socket_descriptor_t
Definition syshead.h:445
uint32_t in_addr_t
Definition syshead.h:52
struct env_set * es
struct gc_arena gc
Definition test_ssl.c:131
Definition manage.h:100
unsigned int msg_flags
Definition manage.h:101
int state
Definition manage.h:102
int intval
Definition manage.h:103