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-2024 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, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 */
23
24#ifndef MANAGE_H
25#define MANAGE_H
26
27/* management_open flags */
28#define MF_SERVER (1<<0)
29#define MF_QUERY_PASSWORDS (1<<1)
30#define MF_HOLD (1<<2)
31#define MF_SIGNAL (1<<3)
32#define MF_FORGET_DISCONNECT (1<<4)
33#define MF_CONNECT_AS_CLIENT (1<<5)
34#define MF_CLIENT_AUTH (1<<6)
35/* #define MF_CLIENT_PF (1<<7) *REMOVED FEATURE* */
36#define MF_UNIX_SOCK (1<<8)
37#define MF_EXTERNAL_KEY (1<<9)
38#define MF_EXTERNAL_KEY_NOPADDING (1<<10)
39#define MF_EXTERNAL_KEY_PKCS1PAD (1<<11)
40#define MF_UP_DOWN (1<<12)
41#define MF_QUERY_REMOTE (1<<13)
42#define MF_QUERY_PROXY (1<<14)
43#define MF_EXTERNAL_CERT (1<<15)
44#define MF_EXTERNAL_KEY_PSSPAD (1<<16)
45#define MF_EXTERNAL_KEY_DIGEST (1<<17)
46
47
48#ifdef ENABLE_MANAGEMENT
49
50#include "misc.h"
51#include "event.h"
52#include "socket.h"
53#include "mroute.h"
54
55#define MANAGEMENT_VERSION 5
56#define MANAGEMENT_N_PASSWORD_RETRIES 3
57#define MANAGEMENT_LOG_HISTORY_INITIAL_SIZE 100
58#define MANAGEMENT_ECHO_BUFFER_SIZE 100
59#define MANAGEMENT_STATE_BUFFER_SIZE 100
60
61/*
62 * Management-interface-based deferred authentication
63 */
65 unsigned long cid;
66
67#define DAF_CONNECTION_ESTABLISHED (1<<0)
68#define DAF_CONNECTION_CLOSED (1<<1)
69#define DAF_INITIAL_AUTH (1<<2)
70 unsigned int flags;
71
72 unsigned int mda_key_id_counter;
73
75};
76
77/*
78 * Manage build-up of command line
79 */
81{
82 struct buffer buf;
84};
85
86struct command_line *command_line_new(const int buf_len);
87
88void command_line_free(struct command_line *cl);
89
90void command_line_add(struct command_line *cl, const unsigned char *buf, const int len);
91
92const char *command_line_get(struct command_line *cl);
93
94void command_line_reset(struct command_line *cl);
95
96void command_line_next(struct command_line *cl);
97
98/*
99 * Manage log file history
100 */
101
103 unsigned int msg_flags;
104 int state;
106};
107
109{
110 time_t timestamp;
111 const char *string;
112 in_addr_t local_ip;
113 struct in6_addr local_ip6;
117};
118
119#define LOG_PRINT_LOG_PREFIX (1<<0)
120#define LOG_PRINT_ECHO_PREFIX (1<<1)
121#define LOG_PRINT_STATE_PREFIX (1<<2)
122
123#define LOG_PRINT_INT_DATE (1<<3)
124#define LOG_PRINT_MSG_FLAGS (1<<4)
125#define LOG_PRINT_STATE (1<<5)
126#define LOG_PRINT_LOCAL_IP (1<<6)
127
128#define LOG_PRINT_CRLF (1<<7)
129#define LOG_FATAL_NOTIFY (1<<8)
130
131#define LOG_PRINT_INTVAL (1<<9)
132
133#define LOG_PRINT_REMOTE_IP (1<<10)
134
135#define LOG_ECHO_TO_LOG (1<<11)
136
137const char *log_entry_print(const struct log_entry *e, unsigned int flags, struct gc_arena *gc);
138
140{
141 int base;
142 int size;
145};
146
147struct log_history *log_history_init(const int capacity);
148
149void log_history_close(struct log_history *h);
150
151void log_history_add(struct log_history *h, const struct log_entry *le);
152
153void log_history_resize(struct log_history *h, const int capacity);
154
155const struct log_entry *log_history_ref(const struct log_history *h, const int index);
156
157static inline int
159{
160 return h->size;
161}
162
163static inline int
165{
166 return h->capacity;
167}
168
169/*
170 * Callbacks for 'status' and 'kill' commands.
171 * Also for management-based deferred authentication and packet filter.
172 */
174{
175 void *arg;
176
177#define MCF_SERVER (1<<0) /* is OpenVPN being run as a server? */
178 unsigned int flags;
179
180 void (*status) (void *arg, const int version, struct status_output *so);
181 void (*show_net) (void *arg, const int msglevel);
182 int (*kill_by_cn) (void *arg, const char *common_name);
183 int (*kill_by_addr) (void *arg, const in_addr_t addr, const int port, const int proto);
184 void (*delete_event) (void *arg, event_t event);
185 int (*n_clients) (void *arg);
186 bool (*send_cc_message) (void *arg, const char *message, const char *parameter);
187 bool (*kill_by_cid)(void *arg, const unsigned long cid, const char *kill_msg);
188 bool (*client_auth) (void *arg,
189 const unsigned long cid,
190 const unsigned int mda_key_id,
191 const bool auth,
192 const char *reason,
193 const char *client_reason,
194 struct buffer_list *cc_config); /* ownership transferred */
195 bool (*client_pending_auth) (void *arg,
196 const unsigned long cid,
197 const unsigned int kid,
198 const char *extra,
199 unsigned int timeout);
200 char *(*get_peer_info) (void *arg, const unsigned long cid);
201 bool (*proxy_cmd)(void *arg, const char **p);
202 bool (*remote_cmd) (void *arg, const char **p);
203#ifdef TARGET_ANDROID
204 int (*network_change)(void *arg, bool samenetwork);
205#endif
206 unsigned int (*remote_entry_count)(void *arg);
207 bool (*remote_entry_get)(void *arg, unsigned int index, char **remote);
208};
209
210/*
211 * Management object, split into three components:
212 *
213 * struct man_persist : Data elements which are persistent across
214 * man_connection open and close.
215 *
216 * struct man_settings : management parameters.
217 *
218 * struct man_connection : created on socket binding and listen,
219 * deleted on socket unbind, may
220 * handle multiple sequential client
221 * connections.
222 */
223
243
246 unsigned int flags; /* MF_x flags */
247 struct addrinfo *local;
248#if UNIX_SOCK_SUPPORT
249 struct sockaddr_un local_unix;
250#endif
252 struct user_pass up;
258
259/* flags for handling the management interface "signal" command */
260#define MANSIG_IGNORE_USR1_HUP (1<<0)
261#define MANSIG_MAP_USR1_TO_HUP (1<<1)
262#define MANSIG_MAP_USR1_TO_TERM (1<<2)
263 unsigned int mansig;
264};
265
266/* up_query modes */
267#define UP_QUERY_DISABLED 0
268#define UP_QUERY_USER_PASS 1
269#define UP_QUERY_PASS 2
270#define UP_QUERY_NEED_OK 3
271#define UP_QUERY_NEED_STR 4
272
273/* states */
274#define MS_INITIAL 0 /* all sockets are closed */
275#define MS_LISTEN 1 /* no client is connected */
276#define MS_CC_WAIT_READ 2 /* client is connected, waiting for read on socket */
277#define MS_CC_WAIT_WRITE 3 /* client is connected, waiting for ability to write to socket */
278
280 int state;
281
285
286#ifdef _WIN32
288#endif
289
290 bool halt;
293
296
297#define IEC_UNDEF 0
298#define IEC_CLIENT_AUTH 1
299/* #define IEC_CLIENT_PF 2 *REMOVED FEATURE* */
300#define IEC_RSA_SIGN 3
301#define IEC_CERTIFICATE 4
302#define IEC_PK_SIGN 5
305 unsigned long in_extra_cid;
306 unsigned int in_extra_kid;
307#define EKS_UNDEF 0
308#define EKS_SOLICIT 1
309#define EKS_INPUT 2
310#define EKS_READY 3
315 struct event_set *es;
317
323
324 const char *up_query_type;
327
328#ifdef TARGET_ANDROID
329 int fdtosend;
330 int lastfdreceived;
331#endif
333};
334
341
342extern struct management *management;
343
344struct user_pass;
345
346struct management *management_init(void);
347
348bool management_open(struct management *man,
349 const char *addr,
350 const char *port,
351 const char *pass_file,
352 const char *client_user,
353 const char *client_group,
354 const int log_history_cache,
355 const int echo_buffer_size,
356 const int state_buffer_size,
357 const int remap_sigusr1,
358 const unsigned int flags);
359
360void management_close(struct management *man);
361
362void management_post_tunnel_open(struct management *man, const in_addr_t tun_local_ip);
363
365
366void management_socket_set(struct management *man,
367 struct event_set *es,
368 void *arg,
369 unsigned int *persistent);
370
371void management_io(struct management *man);
372
373void management_set_callback(struct management *man,
374 const struct management_callback *cb);
375
376void management_clear_callback(struct management *man);
377
379 struct user_pass *up,
380 const char *type,
381 const unsigned int flags,
382 const char *static_challenge);
383
384#ifdef TARGET_ANDROID
385bool management_android_control(struct management *man, const char *command, const char *msg);
386
387#define ANDROID_KEEP_OLD_TUN 1
388#define ANDROID_OPEN_BEFORE_CLOSE 2
389int managment_android_persisttun_action(struct management *man);
390
391#endif
392
393bool management_would_hold(struct management *man);
394
395bool management_hold(struct management *man, int holdtime);
396
397void management_event_loop_n_seconds(struct management *man, int sec);
398
399void management_up_down(struct management *man, const char *updown, const struct env_set *es);
400
401void management_notify(struct management *man, const char *severity, const char *type, const char *text);
402
403void management_notify_generic(struct management *man, const char *str);
404
406 const unsigned int auth_id,
407 struct man_def_auth_context *mdac,
408 const struct env_set *es);
409
411 struct man_def_auth_context *mdac,
412 const struct env_set *es);
413
415 struct man_def_auth_context *mdac,
416 const struct env_set *es);
417
419 struct man_def_auth_context *mdac,
420 const struct mroute_addr *addr,
421 const bool primary);
422
423void management_notify_client_cr_response(unsigned mda_key_id,
424 const struct man_def_auth_context *mdac,
425 const struct env_set *es,
426 const char *response);
427
428char *management_query_pk_sig(struct management *man, const char *b64_data,
429 const char *algorithm);
430
431char *management_query_cert(struct management *man, const char *cert_name);
432
433static inline bool
435{
437}
438
439static inline bool
444
445static inline bool
447{
449}
450
451static inline bool
453{
454 return BOOL_CAST(man->settings.flags & MF_QUERY_PROXY);
455}
456
457
458static inline bool
460{
461 return man && BOOL_CAST(man->settings.flags & MF_CLIENT_AUTH);
462}
463
464/*
465 * OpenVPN tells the management layer what state it's in
466 */
467
468/* client/server states */
469#define OPENVPN_STATE_INITIAL 0 /* Initial, undefined state */
470#define OPENVPN_STATE_CONNECTING 1 /* Management interface has been initialized */
471#define OPENVPN_STATE_ASSIGN_IP 2 /* Assigning IP address to virtual network interface */
472#define OPENVPN_STATE_ADD_ROUTES 3 /* Adding routes to system */
473#define OPENVPN_STATE_CONNECTED 4 /* Initialization sequence completed */
474#define OPENVPN_STATE_RECONNECTING 5 /* Restart */
475#define OPENVPN_STATE_EXITING 6 /* Exit */
476
477/* client-only states */
478#define OPENVPN_STATE_WAIT 7 /* Waiting for initial response from server */
479#define OPENVPN_STATE_AUTH 8 /* Authenticating with server */
480#define OPENVPN_STATE_GET_CONFIG 9 /* Downloading configuration from server */
481#define OPENVPN_STATE_RESOLVE 10 /* DNS lookup */
482#define OPENVPN_STATE_TCP_CONNECT 11 /* Connecting to TCP server */
483#define OPENVPN_STATE_AUTH_PENDING 12 /* Waiting in auth-pending mode
484 * technically variant of GET_CONFIG */
486#define OPENVPN_STATE_CLIENT_BASE 7 /* Base index of client-only states */
487
488void management_set_state(struct management *man,
489 const int state,
490 const char *detail,
491 const in_addr_t *tun_local_ip,
492 const struct in6_addr *tun_local_ip6,
493 const struct openvpn_sockaddr *local_addr,
494 const struct openvpn_sockaddr *remote_addr);
495
496/*
497 * The management object keeps track of OpenVPN --echo
498 * parameters.
499 */
500void management_echo(struct management *man, const char *string, const bool pull);
501
502/*
503 * OpenVPN calls here to indicate a password failure
504 */
505
506void management_auth_failure(struct management *man, const char *type, const char *reason);
507
508/*
509 * Echo an authentication token to management interface
510 */
511void management_auth_token(struct management *man, const char *token);
512
513/*
514 * These functions drive the bytecount in/out counters.
515 */
516
517void
519 struct management *man,
520 struct timeval *timeval);
521
522static inline void
524 const int size_in,
525 const int size_out)
526{
527 if (!(man->persist.callback.flags & MCF_SERVER))
528 {
529 man->persist.bytes_in += size_in;
530 man->persist.bytes_out += size_out;
531 }
532}
533
534void
535man_bytecount_output_server(const counter_type *bytes_in_total,
536 const counter_type *bytes_out_total,
537 struct man_def_auth_context *mdac);
538
539static inline void
541 const counter_type *bytes_in_total,
542 const counter_type *bytes_out_total,
543 struct man_def_auth_context *mdac)
544{
548 {
549 man_bytecount_output_server(bytes_in_total, bytes_out_total, mdac);
550 }
551}
552
553void
554man_persist_client_stats(struct management *man, struct context *c);
555
556#endif /* ifdef ENABLE_MANAGEMENT */
557
562void management_sleep(const int n);
563
564#endif /* ifndef MANAGE_H */
static int buf_len(const struct buffer *buf)
Definition buffer.h:253
uint64_t counter_type
Definition common.h:30
void management_check_bytecount(struct context *c, struct management *man, struct timeval *timeval)
Definition manage.c:4141
void management_pre_tunnel_close(struct management *man)
Definition manage.c:3083
void management_auth_failure(struct management *man, const char *type, const char *reason)
Definition manage.c:3092
void log_history_close(struct log_history *h)
Definition manage.c:4055
static bool management_query_remote_enabled(const struct management *man)
Definition manage.h:446
void management_notify_client_close(struct management *management, struct man_def_auth_context *mdac, const struct env_set *es)
Definition manage.c:2997
void man_bytecount_output_server(const counter_type *bytes_in_total, const counter_type *bytes_out_total, struct man_def_auth_context *mdac)
Definition manage.c:524
static int log_history_capacity(const struct log_history *h)
Definition manage.h:164
#define MF_CLIENT_AUTH
Definition manage.h:34
void management_socket_set(struct management *man, struct event_set *es, void *arg, unsigned int *persistent)
Definition manage.c:3127
void command_line_free(struct command_line *cl)
Definition manage.c:3885
static void management_bytes_server(struct management *man, const counter_type *bytes_in_total, const counter_type *bytes_out_total, struct man_def_auth_context *mdac)
Definition manage.h:539
void command_line_next(struct command_line *cl)
Definition manage.c:3930
void management_clear_callback(struct management *man)
Definition manage.c:2740
char * management_query_cert(struct management *man, const char *cert_name)
Definition manage.c:3787
#define MS_CC_WAIT_WRITE
Definition manage.h:277
bool management_hold(struct management *man, int holdtime)
Definition manage.c:3816
static bool management_query_proxy_enabled(const struct management *man)
Definition manage.h:452
#define DAF_CONNECTION_CLOSED
Definition manage.h:68
#define MCF_SERVER
Definition manage.h:177
#define MS_CC_WAIT_READ
Definition manage.h:276
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:2749
static bool management_query_user_pass_enabled(const struct management *man)
Definition manage.h:440
struct log_history * log_history_init(const int capacity)
Definition manage.c:4034
void management_learn_addr(struct management *management, struct man_def_auth_context *mdac, const struct mroute_addr *addr, const bool primary)
Definition manage.c:3010
struct command_line * command_line_new(const int buf_len)
Definition manage.c:3868
struct management * management_init(void)
Definition manage.c:2651
void command_line_reset(struct command_line *cl)
Definition manage.c:3878
#define MF_QUERY_PROXY
Definition manage.h:42
bool management_would_hold(struct management *man)
Definition manage.c:3806
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:3494
void command_line_add(struct command_line *cl, const unsigned char *buf, const int len)
Definition manage.c:3898
static bool management_connected(const struct management *man)
Definition manage.h:434
void log_history_add(struct log_history *h, const struct log_entry *le)
Definition manage.c:4062
static int log_history_size(const struct log_history *h)
Definition manage.h:158
void management_event_loop_n_seconds(struct management *man, int sec)
Definition manage.c:3442
void management_close(struct management *man)
Definition manage.c:2722
#define MF_QUERY_REMOTE
Definition manage.h:41
const char * log_entry_print(const struct log_entry *e, unsigned int flags, struct gc_arena *gc)
Definition manage.c:3942
void management_auth_token(struct management *man, const char *token)
Definition manage.c:3105
static void management_bytes_client(struct management *man, const int size_in, const int size_out)
Definition manage.h:522
#define MF_QUERY_PASSWORDS
Definition manage.h:29
void management_io(struct management *man)
Definition manage.c:3167
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:2667
void management_notify_generic(struct management *man, const char *str)
Definition manage.c:2906
void management_connection_established(struct management *management, struct man_def_auth_context *mdac, const struct env_set *es)
Definition manage.c:2986
#define DAF_CONNECTION_ESTABLISHED
Definition manage.h:67
void man_persist_client_stats(struct management *man, struct context *c)
Definition manage.c:4172
static bool management_enable_def_auth(const struct management *man)
Definition manage.h:459
void management_set_callback(struct management *man, const struct management_callback *cb)
Definition manage.c:2732
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:2963
void management_echo(struct management *man, const char *string, const bool pull)
Definition manage.c:3027
const struct log_entry * log_history_ref(const struct log_history *h, const int index)
Definition manage.c:4104
void management_up_down(struct management *man, const char *updown, const struct env_set *es)
Definition manage.c:2890
char * management_query_pk_sig(struct management *man, const char *b64_data, const char *algorithm)
Definition manage.c:3760
const char * command_line_get(struct command_line *cl)
Definition manage.c:3914
void management_sleep(const int n)
A sleep function that services the management layer for n seconds rather than doing nothing.
Definition manage.c:4117
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:2939
void log_history_resize(struct log_history *h, const int capacity)
Definition manage.c:4083
void management_notify(struct management *man, const char *severity, const char *type, const char *text)
Definition manage.c:2900
void management_post_tunnel_open(struct management *man, const in_addr_t tun_local_ip)
Definition manage.c:3058
#define BOOL_CAST(x)
Definition basic.h:27
#define msg(flags,...)
Definition error.h:144
time_t now
Definition otime.c:34
Wrapper structure for dynamically allocated memory.
Definition buffer.h:61
struct buffer residual
Definition manage.h:83
struct buffer buf
Definition manage.h:82
Contains all state information for one tunnel.
Definition openvpn.h:474
Garbage collection arena used to keep track of dynamically allocated memory.
Definition buffer.h:117
Definition manage.h:109
struct in6_addr local_ip6
Definition manage.h:113
struct openvpn_sockaddr local_sock
Definition manage.h:114
struct openvpn_sockaddr remote_sock
Definition manage.h:115
time_t timestamp
Definition manage.h:110
const char * string
Definition manage.h:111
in_addr_t local_ip
Definition manage.h:112
union log_entry_union u
Definition manage.h:116
int capacity
Definition manage.h:143
struct log_entry * array
Definition manage.h:144
struct event_set * es
Definition manage.h:315
unsigned long in_extra_cid
Definition manage.h:305
const char * up_query_type
Definition manage.h:324
bool password_verified
Definition manage.h:291
int env_filter_level
Definition manage.h:316
struct user_pass up_query
Definition manage.h:326
socket_descriptor_t sd_top
Definition manage.h:282
struct buffer_list * ext_cert_input
Definition manage.h:314
struct command_line * in
Definition manage.h:294
unsigned int in_extra_kid
Definition manage.h:306
struct openvpn_sockaddr remote
Definition manage.h:284
socket_descriptor_t sd_cli
Definition manage.h:283
struct buffer_list * ext_key_input
Definition manage.h:312
int up_query_mode
Definition manage.h:325
int bytecount_update_seconds
Definition manage.h:321
int in_extra_cmd
Definition manage.h:303
struct buffer_list * in_extra
Definition manage.h:304
bool echo_realtime
Definition manage.h:320
bool state_realtime
Definition manage.h:318
struct event_timeout bytecount_update_interval
Definition manage.h:322
int ext_cert_state
Definition manage.h:313
struct buffer_list * out
Definition manage.h:295
int password_tries
Definition manage.h:292
int client_version
Definition manage.h:332
bool log_realtime
Definition manage.h:319
struct net_event_win32 ne32
Definition manage.h:287
int ext_key_state
Definition manage.h:311
unsigned long cid
Definition manage.h:65
time_t bytecount_last_update
Definition manage.h:74
unsigned int mda_key_id_counter
Definition manage.h:72
unsigned int flags
Definition manage.h:70
counter_type bytes_in
Definition manage.h:240
struct log_history * state
Definition manage.h:234
struct management_callback callback
Definition manage.h:231
struct log_history * log
Definition manage.h:227
struct virtual_output vout
Definition manage.h:228
bool standalone_disabled
Definition manage.h:230
bool defined
Definition manage.h:225
bool hold_release
Definition manage.h:236
struct log_history * echo
Definition manage.h:233
const char * special_state_msg
Definition manage.h:238
counter_type bytes_out
Definition manage.h:241
bool management_over_tunnel
Definition manage.h:251
struct addrinfo * local
Definition manage.h:247
unsigned int flags
Definition manage.h:246
int echo_buffer_size
Definition manage.h:254
int client_uid
Definition manage.h:256
unsigned int mansig
Definition manage.h:263
int state_buffer_size
Definition manage.h:255
bool defined
Definition manage.h:245
int client_gid
Definition manage.h:257
int log_history_cache
Definition manage.h:253
struct user_pass up
Definition manage.h:252
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:188
void(* delete_event)(void *arg, event_t event)
Definition manage.h:184
int(* kill_by_addr)(void *arg, const in_addr_t addr, const int port, const int proto)
Definition manage.h:183
bool(* client_pending_auth)(void *arg, const unsigned long cid, const unsigned int kid, const char *extra, unsigned int timeout)
Definition manage.h:195
int(* n_clients)(void *arg)
Definition manage.h:185
void(* status)(void *arg, const int version, struct status_output *so)
Definition manage.h:180
bool(* remote_entry_get)(void *arg, unsigned int index, char **remote)
Definition manage.h:207
unsigned int(* remote_entry_count)(void *arg)
Definition manage.h:206
bool(* send_cc_message)(void *arg, const char *message, const char *parameter)
Definition manage.h:186
bool(* proxy_cmd)(void *arg, const char **p)
Definition manage.h:201
unsigned int flags
Definition manage.h:178
bool(* remote_cmd)(void *arg, const char **p)
Definition manage.h:202
int(* kill_by_cn)(void *arg, const char *common_name)
Definition manage.h:182
bool(* kill_by_cid)(void *arg, const unsigned long cid, const char *kill_msg)
Definition manage.h:187
void(* show_net)(void *arg, const int msglevel)
Definition manage.h:181
struct man_persist persist
Definition manage.h:337
struct man_connection connection
Definition manage.h:339
struct man_settings settings
Definition manage.h:338
SOCKET socket_descriptor_t
Definition syshead.h:439
struct env_set * es
struct gc_arena gc
Definition test_ssl.c:155
Definition manage.h:102
unsigned int msg_flags
Definition manage.h:103
int state
Definition manage.h:104
int intval
Definition manage.h:105