OpenVPN
options_show.c
Go to the documentation of this file.
1/*
2 * OpenVPN -- An application to securely tunnel IP networks
3 * over a single 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#ifdef HAVE_CONFIG_H
24#include "config.h"
25#endif
26
27#ifndef ENABLE_SMALL
28
29#include "syshead.h"
30
31#include "options_show.h"
32
33#include "crypto.h"
34#include "error.h"
35#include "options.h"
36
37static const char *
39{
40 if (type == PUF_TYPE_ACCEPT)
41 {
42 return "accept";
43 }
44 if (type == PUF_TYPE_IGNORE)
45 {
46 return "ignore";
47 }
48 if (type == PUF_TYPE_REJECT)
49 {
50 return "reject";
51 }
52 else
53 {
54 return "???";
55 }
56}
57
58#define SHOW_PARM(name, value, format) msg(D_SHOW_PARMS, " " #name " = " format, (value))
59#define SHOW_STR(var) SHOW_PARM(var, (o->var ? o->var : "[UNDEF]"), "'%s'")
60#define SHOW_STR_INLINE(var) \
61 SHOW_PARM(var, o->var##_inline ? "[INLINE]" : (o->var ? o->var : "[UNDEF]"), "'%s'")
62#define SHOW_INT(var) SHOW_PARM(var, o->var, "%d")
63#define SHOW_UINT(var) SHOW_PARM(var, o->var, "%u")
64#define SHOW_INT64(var) SHOW_PARM(var, o->var, "%" PRIi64)
65#define SHOW_UNSIGNED(var) SHOW_PARM(var, o->var, "0x%08x")
66#define SHOW_BOOL(var) SHOW_PARM(var, (o->var ? "ENABLED" : "DISABLED"), "%s");
67
68#ifdef _WIN32
69
70static void
71show_dhcp_option_list(const char *name, const char *const *array, unsigned int len)
72{
73 for (unsigned int i = 0; i < len; ++i)
74 {
75 msg(D_SHOW_PARMS, " %s[%u] = %s", name, i, array[i]);
76 }
77}
78
79static void
80show_dhcp_option_addrs(const char *name, const in_addr_t *array, unsigned int len)
81{
82 struct gc_arena gc = gc_new();
83 for (unsigned int i = 0; i < len; ++i)
84 {
85 msg(D_SHOW_PARMS, " %s[%u] = %s", name, i, print_in_addr_t(array[i], 0, &gc));
86 }
87 gc_free(&gc);
88}
89
90static void
92{
93 SHOW_BOOL(ip_win32_defined);
94 SHOW_INT(ip_win32_type);
95 SHOW_INT(dhcp_masq_offset);
96 SHOW_INT(dhcp_lease_time);
97 SHOW_INT(tap_sleep);
100 SHOW_BOOL(dhcp_pre_release);
101 SHOW_STR(domain);
102 SHOW_STR(netbios_scope);
103 SHOW_UNSIGNED(netbios_node_type);
104 SHOW_BOOL(disable_nbt);
105
106 show_dhcp_option_addrs("DNS", o->dns, o->dns_len);
107 show_dhcp_option_addrs("WINS", o->wins, o->wins_len);
108 show_dhcp_option_addrs("NTP", o->ntp, o->ntp_len);
109 show_dhcp_option_addrs("NBDD", o->nbdd, o->nbdd_len);
111}
112#endif /* ifdef _WIN32 */
113
114static const char *
116{
117 switch (mode)
118 {
119 case VLAN_ONLY_TAGGED:
120 return "tagged";
121
123 return "untagged";
124
125 case VLAN_ALL:
126 return "all";
127 }
128 return NULL;
129}
130
131static void
132show_p2mp_parms(const struct options *o)
133{
134 struct gc_arena gc = gc_new();
135
136 msg(D_SHOW_PARMS, " server_network = %s", print_in_addr_t(o->server_network, 0, &gc));
137 msg(D_SHOW_PARMS, " server_netmask = %s", print_in_addr_t(o->server_netmask, 0, &gc));
138 msg(D_SHOW_PARMS, " server_network_ipv6 = %s", print_in6_addr(o->server_network_ipv6, 0, &gc));
139 SHOW_INT(server_netbits_ipv6);
140 msg(D_SHOW_PARMS, " server_bridge_ip = %s", print_in_addr_t(o->server_bridge_ip, 0, &gc));
141 msg(D_SHOW_PARMS, " server_bridge_netmask = %s",
143 msg(D_SHOW_PARMS, " server_bridge_pool_start = %s",
145 msg(D_SHOW_PARMS, " server_bridge_pool_end = %s",
147 if (o->push_list.head)
148 {
149 const struct push_entry *e = o->push_list.head;
150 while (e)
151 {
152 if (e->enable)
153 {
154 msg(D_SHOW_PARMS, " push_entry = '%s'", e->option);
155 }
156 e = e->next;
157 }
158 }
159 SHOW_BOOL(ifconfig_pool_defined);
160 msg(D_SHOW_PARMS, " ifconfig_pool_start = %s",
162 msg(D_SHOW_PARMS, " ifconfig_pool_end = %s", print_in_addr_t(o->ifconfig_pool_end, 0, &gc));
163 msg(D_SHOW_PARMS, " ifconfig_pool_netmask = %s",
165 SHOW_STR(ifconfig_pool_persist_filename);
166 SHOW_INT(ifconfig_pool_persist_refresh_freq);
167 SHOW_BOOL(ifconfig_ipv6_pool_defined);
168 msg(D_SHOW_PARMS, " ifconfig_ipv6_pool_base = %s",
170 SHOW_INT(ifconfig_ipv6_pool_netbits);
171 SHOW_INT(n_bcast_buf);
172 SHOW_INT(tcp_queue_limit);
173 SHOW_INT(real_hash_size);
174 SHOW_INT(virtual_hash_size);
175 SHOW_STR(client_connect_script);
177 SHOW_STR(client_disconnect_script);
178 SHOW_STR(client_crresponse_script);
179 SHOW_STR(client_config_dir);
180 SHOW_BOOL(ccd_exclusive);
181 SHOW_STR(tmp_dir);
182 SHOW_BOOL(push_ifconfig_defined);
183 msg(D_SHOW_PARMS, " push_ifconfig_local = %s",
185 msg(D_SHOW_PARMS, " push_ifconfig_remote_netmask = %s",
187 SHOW_BOOL(push_ifconfig_ipv6_defined);
188 msg(D_SHOW_PARMS, " push_ifconfig_ipv6_local = %s/%d",
190 msg(D_SHOW_PARMS, " push_ifconfig_ipv6_remote = %s",
192 SHOW_BOOL(enable_c2c);
193 SHOW_BOOL(duplicate_cn);
194 SHOW_INT(cf_max);
195 SHOW_INT(cf_per);
196 SHOW_INT(cf_initial_max);
197 SHOW_INT(cf_initial_per);
198 SHOW_UINT(max_clients);
199 SHOW_INT(max_routes_per_client);
200 SHOW_STR(auth_user_pass_verify_script);
201 SHOW_BOOL(auth_user_pass_verify_script_via_file);
202 SHOW_BOOL(auth_token_generate);
203 SHOW_BOOL(force_key_material_export);
204 SHOW_INT(auth_token_lifetime);
205 SHOW_STR_INLINE(auth_token_secret_file);
206#if PORT_SHARE
207 SHOW_STR(port_share_host);
208 SHOW_STR(port_share_port);
209#endif
210 SHOW_BOOL(vlan_tagging);
211 msg(D_SHOW_PARMS, " vlan_accept = %s", print_vlan_accept(o->vlan_accept));
212 SHOW_INT(vlan_pvid);
213
214 SHOW_BOOL(client);
215 SHOW_BOOL(pull);
216 SHOW_STR_INLINE(auth_user_pass_file);
217
218 gc_free(&gc);
219}
220
221static void
223{
224 int i;
225 msg(D_SHOW_PARMS, "BEGIN http_proxy");
226 SHOW_STR(server);
227 SHOW_STR(port);
228 SHOW_STR(auth_method_string);
229 SHOW_STR(auth_file);
230 SHOW_STR(auth_file_up);
231 SHOW_BOOL(inline_creds);
232 SHOW_BOOL(nocache);
233 SHOW_STR(http_version);
234 SHOW_STR(user_agent);
235 for (i = 0; i < MAX_CUSTOM_HTTP_HEADER && o->custom_headers[i].name; i++)
236 {
237 if (o->custom_headers[i].content)
238 {
239 msg(D_SHOW_PARMS, " custom_header[%d] = %s: %s", i, o->custom_headers[i].name,
240 o->custom_headers[i].content);
241 }
242 else
243 {
244 msg(D_SHOW_PARMS, " custom_header[%d] = %s", i, o->custom_headers[i].name);
245 }
246 }
247 msg(D_SHOW_PARMS, "END http_proxy");
248}
249
250static void
252{
253 /* Display the global proto only in client mode or with no '--local'*/
254 if (o->local_list->len == 1)
255 {
256 msg(D_SHOW_PARMS, " proto = %s", proto2ascii(o->proto, o->af, false));
257 }
258
259 msg(D_SHOW_PARMS, " Local Sockets:");
260 for (int i = 0; i < o->local_list->len; i++)
261 {
262 msg(D_SHOW_PARMS, " [%s]:%s-%s", o->local_list->array[i]->local,
263 o->local_list->array[i]->port,
264 proto2ascii(o->local_list->array[i]->proto, o->af, false));
265 }
266 SHOW_STR(remote);
267 SHOW_STR(remote_port);
268 SHOW_BOOL(remote_float);
269 SHOW_BOOL(bind_defined);
271 SHOW_BOOL(bind_ipv6_only);
272 SHOW_INT(connect_retry_seconds);
273 SHOW_INT(connect_timeout);
274
275 if (o->http_proxy_options)
276 {
278 }
279 SHOW_STR(socks_proxy_server);
280 SHOW_STR(socks_proxy_port);
281 SHOW_INT(tun_mtu);
282 SHOW_BOOL(tun_mtu_defined);
283 SHOW_INT(link_mtu);
284 SHOW_BOOL(link_mtu_defined);
285 SHOW_INT(tun_mtu_extra);
286 SHOW_BOOL(tun_mtu_extra_defined);
287 SHOW_INT(tls_mtu);
288
289 SHOW_INT(mtu_discover_type);
290
291#ifdef ENABLE_FRAGMENT
293#endif
294 SHOW_INT(mssfix);
295 SHOW_BOOL(mssfix_encap);
296 SHOW_BOOL(mssfix_fixed);
297
298 SHOW_INT(explicit_exit_notification);
299
300 SHOW_STR_INLINE(tls_auth_file);
301 SHOW_PARM(key_direction, keydirection2ascii(o->key_direction, false, true), "%s");
302 SHOW_STR_INLINE(tls_crypt_file);
303 SHOW_STR_INLINE(tls_crypt_v2_file);
304}
305
306
307static void
309{
310 if (o->connection_list)
311 {
312 const struct connection_list *l = o->connection_list;
313 int i;
314 for (i = 0; i < l->len; ++i)
315 {
316 msg(D_SHOW_PARMS, "Connection profiles [%d]:", i);
317 show_connection_entry(l->array[i]);
318 }
319 }
320 else
321 {
322 msg(D_SHOW_PARMS, "Connection profiles [default]:");
324 }
325 msg(D_SHOW_PARMS, "Connection profiles END");
326}
327
328static void
330{
331 struct pull_filter *f;
332 if (!l)
333 {
334 return;
335 }
336
337 msg(D_SHOW_PARMS, " Pull filters:");
338 for (f = l->head; f; f = f->next)
339 {
340 msg(D_SHOW_PARMS, " %s \"%s\"", pull_filter_type_name(f->type), f->pattern);
341 }
342}
343
344void
345show_settings(const struct options *o)
346{
347 msg(D_SHOW_PARMS, "Current Parameter Settings:");
348
349 SHOW_STR(config);
350
351 SHOW_INT(mode);
352
353#ifdef ENABLE_FEATURE_TUN_PERSIST
354 SHOW_BOOL(persist_config);
355 SHOW_INT(persist_mode);
356#endif
357
358 SHOW_BOOL(show_ciphers);
359 SHOW_BOOL(show_digests);
360 SHOW_BOOL(show_engines);
361 SHOW_BOOL(genkey);
362 SHOW_STR(genkey_filename);
363 SHOW_STR(key_pass_file);
364 SHOW_BOOL(show_tls_ciphers);
365
366 SHOW_INT(connect_retry_max);
368
369 SHOW_BOOL(remote_random);
370
371 SHOW_STR(ipchange);
372 SHOW_STR(dev);
373 SHOW_STR(dev_type);
374 SHOW_STR(dev_node);
375#if defined(ENABLE_DCO)
376 SHOW_BOOL(disable_dco);
377#endif
378 SHOW_STR(lladdr);
379 SHOW_INT(topology);
380 SHOW_STR(ifconfig_local);
381 SHOW_STR(ifconfig_remote_netmask);
382 SHOW_BOOL(ifconfig_noexec);
383 SHOW_BOOL(ifconfig_nowarn);
384 SHOW_STR(ifconfig_ipv6_local);
385 SHOW_INT(ifconfig_ipv6_netbits);
386 SHOW_STR(ifconfig_ipv6_remote);
387
389 SHOW_INT(mtu_test);
390
391 SHOW_BOOL(mlock);
392
393 SHOW_INT(keepalive_ping);
394 SHOW_INT(keepalive_timeout);
395 SHOW_INT(inactivity_timeout);
396 SHOW_INT(session_timeout);
397 SHOW_INT64(inactivity_minimum_bytes);
398 SHOW_INT(ping_send_timeout);
399 SHOW_INT(ping_rec_timeout);
400 SHOW_INT(ping_rec_timeout_action);
401 SHOW_BOOL(ping_timer_remote);
402 SHOW_INT(remap_sigusr1);
403 SHOW_BOOL(persist_tun);
404 SHOW_BOOL(persist_local_ip);
405 SHOW_BOOL(persist_remote_ip);
406
407#if PASSTOS_CAPABILITY
408 SHOW_BOOL(passtos);
409#endif
410
411 SHOW_INT(resolve_retry_seconds);
412 SHOW_BOOL(resolve_in_advance);
413
414 SHOW_STR(username);
415 SHOW_STR(groupname);
416 SHOW_STR(chroot_dir);
417 SHOW_STR(cd_dir);
418#ifdef ENABLE_SELINUX
419 SHOW_STR(selinux_context);
420#endif
421 SHOW_STR(writepid);
422 SHOW_STR(up_script);
423 SHOW_STR(down_script);
424 SHOW_BOOL(down_pre);
425 SHOW_BOOL(up_restart);
426 SHOW_BOOL(up_delay);
428 SHOW_BOOL(log);
431 SHOW_INT(nice);
432 SHOW_INT(verbosity);
433 SHOW_INT(mute);
434#ifdef ENABLE_DEBUG
435 SHOW_INT(gremlin);
436#endif
437 SHOW_STR(status_file);
438 SHOW_INT(status_file_version);
439 SHOW_INT(status_file_update_freq);
440
441 SHOW_BOOL(occ);
442 SHOW_INT(rcvbuf);
443 SHOW_INT(sndbuf);
444#if defined(TARGET_LINUX)
445 SHOW_INT(mark);
446#endif
447 SHOW_INT(sockflags);
448
449 SHOW_INT(comp.alg);
450 SHOW_INT(comp.flags);
451
452 SHOW_STR(route_script);
453 SHOW_STR(route_default_gateway);
454 SHOW_INT(route_default_metric);
455 SHOW_INT(route_default_table_id);
456 SHOW_BOOL(route_noexec);
457 SHOW_INT(route_delay);
458 SHOW_INT(route_delay_window);
459 SHOW_BOOL(route_delay_defined);
460 SHOW_BOOL(route_nopull);
461 SHOW_BOOL(route_gateway_via_dhcp);
462 SHOW_BOOL(allow_pull_fqdn);
464
465 if (o->routes)
466 {
468 }
469
470 if (o->client_nat)
471 {
473 }
474
476
477#ifdef ENABLE_MANAGEMENT
478 SHOW_STR(management_addr);
479 SHOW_STR(management_port);
480 SHOW_STR(management_user_pass);
481 SHOW_INT(management_log_history_cache);
482 SHOW_INT(management_echo_buffer_size);
483 SHOW_STR(management_client_user);
484 SHOW_STR(management_client_group);
485 SHOW_INT(management_flags);
486#endif
487#ifdef ENABLE_PLUGIN
488 if (o->plugin_list)
489 {
491 }
492#endif
493
494 SHOW_STR_INLINE(shared_secret_file);
495 SHOW_PARM(key_direction, keydirection2ascii(o->key_direction, false, true), "%s");
496 SHOW_STR(ciphername);
497 SHOW_STR(ncp_ciphers);
498 SHOW_STR(authname);
499#ifndef ENABLE_CRYPTO_MBEDTLS
500 SHOW_BOOL(engine);
501#endif /* ENABLE_CRYPTO_MBEDTLS */
502 SHOW_BOOL(mute_replay_warnings);
503 SHOW_INT(replay_window);
504 SHOW_INT(replay_time);
505 SHOW_STR(packet_id_file);
507
508 SHOW_BOOL(tls_server);
509 SHOW_BOOL(tls_client);
510 SHOW_STR_INLINE(ca_file);
511 SHOW_STR(ca_path);
512 SHOW_STR_INLINE(dh_file);
514 {
515 SHOW_PARM("cert_file", "EXTERNAL_CERT", "%s");
516 }
517 else
518 {
519 SHOW_STR_INLINE(cert_file);
520 }
521 SHOW_STR_INLINE(extra_certs_file);
522
524 {
525 SHOW_PARM("priv_key_file", "EXTERNAL_PRIVATE_KEY", "%s");
526 }
527 else
528 {
529 SHOW_STR_INLINE(priv_key_file);
530 }
531#ifndef ENABLE_CRYPTO_MBEDTLS
532 SHOW_STR_INLINE(pkcs12_file);
533#endif
534#ifdef ENABLE_CRYPTOAPI
535 SHOW_STR(cryptoapi_cert);
536#endif
537 SHOW_STR(cipher_list);
538 SHOW_STR(cipher_list_tls13);
539 SHOW_STR(tls_cert_profile);
541 SHOW_STR(tls_export_peer_cert_dir);
542 SHOW_INT(verify_x509_type);
543 SHOW_STR(verify_x509_name);
544 SHOW_STR_INLINE(crl_file);
545 SHOW_INT(ns_cert_type);
546 {
547 int i;
548 for (i = 0; i < MAX_PARMS; i++)
549 {
550 SHOW_INT(remote_cert_ku[i]);
551 }
552 }
553 SHOW_STR(remote_cert_eku);
554 if (o->verify_hash)
555 {
556 SHOW_INT(verify_hash_algo);
557 SHOW_INT(verify_hash_depth);
558 struct gc_arena gc = gc_new();
559 const struct verify_hash_list *hl = o->verify_hash;
560 int digest_len =
562 while (hl)
563 {
564 char *s = format_hex_ex(hl->hash, digest_len, 0, 1, ":", &gc);
565 SHOW_PARM(verify_hash, s, "%s");
566 hl = hl->next;
567 }
568 gc_free(&gc);
569 }
570 SHOW_INT(ssl_flags);
571
572 SHOW_INT(tls_timeout);
573
574 SHOW_INT64(renegotiate_bytes);
575 SHOW_INT64(renegotiate_packets);
576 SHOW_INT(renegotiate_seconds);
577
578 SHOW_INT(handshake_window);
579 SHOW_INT(transition_window);
580
581 SHOW_BOOL(single_session);
583 SHOW_BOOL(tls_exit);
584
585 SHOW_STR(tls_crypt_v2_metadata);
586
587#ifdef ENABLE_PKCS11
588 {
589 int i;
590 for (i = 0; i < MAX_PARMS && o->pkcs11_providers[i] != NULL; i++)
591 {
592 SHOW_PARM(pkcs11_providers, o->pkcs11_providers[i], "%s");
593 }
594 }
595 {
596 int i;
597 for (i = 0; i < MAX_PARMS; i++)
598 {
599 SHOW_PARM(pkcs11_protected_authentication,
600 o->pkcs11_protected_authentication[i] ? "ENABLED" : "DISABLED", "%s");
601 }
602 }
603 {
604 int i;
605 for (i = 0; i < MAX_PARMS; i++)
606 {
607 SHOW_PARM(pkcs11_private_mode, o->pkcs11_private_mode[i], "%08x");
608 }
609 }
610 {
611 int i;
612 for (i = 0; i < MAX_PARMS; i++)
613 {
614 SHOW_PARM(pkcs11_cert_private, o->pkcs11_cert_private[i] ? "ENABLED" : "DISABLED",
615 "%s");
616 }
617 }
618 SHOW_INT(pkcs11_pin_cache_period);
619 SHOW_STR(pkcs11_id);
621#endif /* ENABLE_PKCS11 */
622
624
625#ifdef _WIN32
626 SHOW_BOOL(show_net_up);
627 SHOW_INT(route_method);
628 SHOW_BOOL(block_outside_dns);
630#endif
631}
632
633#endif /* ifndef ENABLE_SMALL */
char * format_hex_ex(const uint8_t *data, size_t size, size_t maxoutput, unsigned int space_break_flags, const char *separator, struct gc_arena *gc)
Format a binary buffer as a hex string.
Definition buffer.c:452
static void gc_free(struct gc_arena *a)
Free all allocations in a garbage collection arena.
Definition buffer.h:1912
static struct gc_arena gc_new(void)
Allocate and return a new, empty garbage collection arena.
Definition buffer.h:1896
void print_client_nat_list(const struct client_nat_option_list *list, msglvl_t msglevel)
Definition clinat.c:50
int daemon(int nochdir, int noclose)
const char * keydirection2ascii(int kd, bool remote, bool humanreadable)
Definition crypto.c:1655
void test_crypto(struct crypto_options *co, struct frame *frame)
Definition crypto.c:1199
Data Channel Cryptography Module.
@ MD_SHA1
#define SHA_DIGEST_LENGTH
#define SHA256_DIGEST_LENGTH
void show_dns_options(const struct dns_options *o)
Prints configured DNS options.
Definition dns.c:779
#define D_SHOW_PARMS
Definition errlevel.h:95
static int tls_verify(struct openvpn_plugin_args_func_in const *args)
#define MF_EXTERNAL_KEY
Definition manage.h:36
#define MF_EXTERNAL_CERT
Definition manage.h:42
static bool learn_address_script(const struct multi_context *m, const struct multi_instance *mi, const char *op, const struct mroute_addr *addr)
Definition multi.c:83
static bool machine_readable_output
Definition error.c:74
static bool suppress_timestamps
Definition error.c:77
#define msg(flags,...)
Definition error.h:152
#define PUF_TYPE_ACCEPT
filter type to accept a matching option
Definition options.h:800
#define PUF_TYPE_IGNORE
filter type to ignore a matching option
Definition options.h:801
#define PUF_TYPE_REJECT
filter type to reject and trigger SIGUSR1
Definition options.h:802
#define MAX_PARMS
Definition options.h:51
vlan_acceptable_frames
Definition options.h:225
@ VLAN_ONLY_UNTAGGED_OR_PRIORITY
Definition options.h:227
@ VLAN_ALL
Definition options.h:228
@ VLAN_ONLY_TAGGED
Definition options.h:226
#define SHOW_BOOL(var)
#define SHOW_STR(var)
static void show_dhcp_option_list(const char *name, const char *const *array, unsigned int len)
#define SHOW_UNSIGNED(var)
void show_settings(const struct options *o)
static void show_connection_entries(const struct options *o)
static void show_dhcp_option_addrs(const char *name, const in_addr_t *array, unsigned int len)
#define SHOW_UINT(var)
static void show_http_proxy_options(const struct http_proxy_options *o)
static void show_connection_entry(const struct connection_entry *o)
#define SHOW_INT64(var)
static void show_p2mp_parms(const struct options *o)
static const char * pull_filter_type_name(int type)
#define SHOW_STR_INLINE(var)
static void show_tuntap_options(const struct tuntap_options *o)
static const char * print_vlan_accept(enum vlan_acceptable_frames mode)
#define SHOW_PARM(name, value, format)
static void show_pull_filter_list(const struct pull_filter_list *l)
#define SHOW_INT(var)
void plugin_option_list_print(const struct plugin_option_list *list, msglvl_t msglevel)
Definition plugin.c:187
#define MAX_CUSTOM_HTTP_HEADER
Definition proxy.h:43
void print_route_options(const struct route_option_list *rol, msglvl_t msglevel)
Definition route.c:1240
static void bind_local(struct link_socket *sock, const sa_family_t ai_family)
Definition socket.c:622
const char * proto2ascii(int proto, sa_family_t af, bool display_form)
const char * print_in6_addr(struct in6_addr a6, unsigned int flags, struct gc_arena *gc)
const char * print_in_addr_t(in_addr_t addr, unsigned int flags, struct gc_arena *gc)
static bool push_peer_info(struct buffer *buf, struct tls_multi *multi, struct tls_session *session)
Prepares the IV_ and UV_ variables that are part of the exchange to signal the peer's capabilities.
Definition ssl.c:1907
Definition options.h:109
struct local_list * local_list
Definition options.h:110
struct http_proxy_options * http_proxy_options
Definition options.h:124
int proto
Definition options.h:111
sa_family_t af
Definition options.h:112
int key_direction
Definition options.h:169
Structure for reassembling one incoming fragmented packet.
Definition fragment.h:65
Garbage collection arena used to keep track of dynamically allocated memory.
Definition buffer.h:127
const char * name
Definition proxy.h:39
const char * content
Definition proxy.h:40
struct http_custom_header custom_headers[MAX_CUSTOM_HTTP_HEADER]
Definition proxy.h:59
const char * port
Definition options.h:104
int proto
Definition options.h:105
const char * local
Definition options.h:103
struct local_entry ** array
Definition options.h:198
int push_ifconfig_ipv6_netbits
Definition options.h:523
struct connection_list * connection_list
Definition options.h:295
enum vlan_acceptable_frames vlan_accept
Definition options.h:713
hash_algo_type verify_hash_algo
Definition options.h:622
struct in6_addr server_network_ipv6
Definition options.h:471
in_addr_t server_network
Definition options.h:468
in_addr_t ifconfig_pool_netmask
Definition options.h:491
in_addr_t server_netmask
Definition options.h:469
in_addr_t server_bridge_netmask
Definition options.h:483
struct route_option_list * routes
Definition options.h:434
in_addr_t ifconfig_pool_end
Definition options.h:490
struct push_list push_list
Definition options.h:487
struct tuntap_options tuntap_options
Definition options.h:371
struct verify_hash_list * verify_hash
Definition options.h:621
unsigned int management_flags
Definition options.h:459
struct dns_options dns_options
Definition options.h:318
struct plugin_option_list * plugin_list
Definition options.h:462
in_addr_t push_ifconfig_local
Definition options.h:514
struct pull_filter_list * pull_filter_list
Definition options.h:716
struct in6_addr push_ifconfig_ipv6_remote
Definition options.h:524
int key_direction
Definition options.h:574
in_addr_t server_bridge_pool_start
Definition options.h:484
struct client_nat_option_list * client_nat
Definition options.h:440
struct in6_addr push_ifconfig_ipv6_local
Definition options.h:522
in_addr_t server_bridge_pool_end
Definition options.h:485
in_addr_t ifconfig_pool_start
Definition options.h:489
in_addr_t push_ifconfig_remote_netmask
Definition options.h:515
in_addr_t server_bridge_ip
Definition options.h:482
struct in6_addr ifconfig_ipv6_pool_base
Definition options.h:496
struct pull_filter * head
Definition options.h:811
struct pull_filter * next
Definition options.h:806
char * pattern
Definition options.h:805
Definition pushlist.h:29
struct push_entry * next
Definition pushlist.h:30
bool enable
Definition pushlist.h:31
const char * option
Definition pushlist.h:32
struct push_entry * head
Definition pushlist.h:37
in_addr_t nbdd[N_DHCP_ADDR]
Definition tun.h:123
in_addr_t ntp[N_DHCP_ADDR]
Definition tun.h:119
unsigned int ntp_len
Definition tun.h:120
in_addr_t wins[N_DHCP_ADDR]
Definition tun.h:115
unsigned int dns_len
Definition tun.h:112
in_addr_t dns[N_DHCP_ADDR]
Definition tun.h:111
unsigned int domain_search_list_len
Definition tun.h:130
const char * domain_search_list[N_SEARCH_LIST_LEN]
Definition tun.h:129
unsigned int nbdd_len
Definition tun.h:124
unsigned int wins_len
Definition tun.h:116
struct verify_hash_list * next
Definition options.h:252
uint8_t hash[SHA256_DIGEST_LENGTH]
Definition options.h:251
uint32_t in_addr_t
Definition syshead.h:52
static bool pkcs11_id_management
struct gc_arena gc
Definition test_ssl.c:122
static bool dhcp_renew(const struct tuntap *tt)
Definition tun.c:4839