OpenVPN
options.h
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-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 /*
25  * 2004-01-28: Added Socks5 proxy support
26  * (Christof Meerwald, http://cmeerw.org)
27  */
28 
29 #ifndef OPTIONS_H
30 #define OPTIONS_H
31 
32 #include "basic.h"
33 #include "common.h"
34 #include "mtu.h"
35 #include "route.h"
36 #include "tun.h"
37 #include "socket.h"
38 #include "plugin.h"
39 #include "manage.h"
40 #include "proxy.h"
41 #include "comp.h"
42 #include "pushlist.h"
43 #include "clinat.h"
44 #include "crypto_backend.h"
45 #include "dns.h"
46 
47 
48 /*
49  * Maximum number of parameters associated with an option,
50  * including the option name itself.
51  */
52 #define MAX_PARMS 16
53 
54 /*
55  * Max size of options line and parameter.
56  */
57 #define OPTION_PARM_SIZE 256
58 #define OPTION_LINE_SIZE 256
59 
60 extern const char title_string[];
61 
62 /* certain options are saved before --pull modifications are applied */
64 {
67 
70 
73 
74  const char *route_default_gateway;
76 
79 
81 
82  const char *ciphername;
83  const char *authname;
84 
88 
91 };
92 
93 #if !defined(ENABLE_CRYPTO_OPENSSL) && !defined(ENABLE_CRYPTO_MBEDTLS)
94 #error "At least one of OpenSSL or mbed TLS needs to be defined."
95 #endif
96 
98 {
99  const char *local;
100  const char *port;
101  int proto;
102 };
103 
105 {
107  int proto;
109  const char *local_port;
111  const char *remote_port;
112  const char *remote;
121  const char *socks_proxy_server;
122  const char *socks_proxy_port;
123  const char *socks_proxy_authfile;
124 
125  int tun_mtu; /* MTU of tun device */
126  int occ_mtu; /* if non-null, this is the MTU we announce to peers in OCC */
127  int tun_mtu_max; /* maximum MTU that can be pushed */
128 
129  bool tun_mtu_defined; /* true if user overriding parm with command line option */
132  int link_mtu; /* MTU of device over which tunnel packets pass via TCP/UDP */
133  bool link_mtu_defined; /* true if user overriding parm with command line option */
134  int tls_mtu; /* Maximum MTU for the control channel messages */
135 
136  /* Advanced MTU negotiation and datagram fragmentation options */
137  int mtu_discover_type; /* used if OS supports setting Path MTU discovery options on socket */
138 
139  int fragment; /* internal fragmentation size */
140  bool fragment_encap; /* true if --fragment had the "mtu" parameter to
141  * include overhead from IP and TCP/UDP encapsulation */
142  int mssfix; /* Upper bound on TCP MSS */
143  bool mssfix_default; /* true if --mssfix should use the default parameters */
144  bool mssfix_encap; /* true if --mssfix had the "mtu" parameter to include
145  * overhead from IP and TCP/UDP encapsulation */
146  bool mssfix_fixed; /* use the mssfix value without any encapsulation adjustments */
147 
148  int explicit_exit_notification; /* Explicitly tell peer when we are exiting via OCC_EXIT or [RESTART] message */
149 
150 #define CE_DISABLED (1<<0)
151 #define CE_MAN_QUERY_PROXY (1<<1)
152 #define CE_MAN_QUERY_REMOTE_UNDEF 0
153 #define CE_MAN_QUERY_REMOTE_QUERY 1
154 #define CE_MAN_QUERY_REMOTE_ACCEPT 2
155 #define CE_MAN_QUERY_REMOTE_MOD 3
156 #define CE_MAN_QUERY_REMOTE_SKIP 4
157 #define CE_MAN_QUERY_REMOTE_MASK (0x07)
158 #define CE_MAN_QUERY_REMOTE_SHIFT (2)
159  unsigned int flags;
160 
161  /* Shared secret used for TLS control channel authentication */
162  const char *tls_auth_file;
165 
166  /* Shared secret used for TLS control channel authenticated encryption */
167  const char *tls_crypt_file;
169 
170  /* Client-specific secret or server key used for TLS control channel
171  * authenticated encryption v2 */
172  const char *tls_crypt_v2_file;
174 
175  /* Allow only client that support resending the wrapped client key */
177 };
178 
180 {
181  const char *remote;
182  const char *remote_port;
183  int proto;
185 };
186 
187 #define CONNECTION_LIST_SIZE 64
188 
190 {
191  int len;
193 };
194 
196 {
197  int capacity;
198  int len;
199  int current;
201 };
202 
204 {
205  int capacity;
206  int len;
207  struct remote_entry **array;
208 };
209 
211 {
212  /* Names of the providers */
213  const char *names[MAX_PARMS];
214  /* Pointers to the loaded providers to unload them */
216 };
217 
219 {
223 };
224 
226 {
227 #define RH_HOST_LEN 80
229 #define RH_PORT_LEN 20
231 };
232 
238 };
239 
241 {
242  /* We support SHA256 and SHA1 fingerpint. In the case of using the
243  * deprecated SHA1, only the first 20 bytes of each list item are used */
246 };
247 
248 /* Command line options */
249 struct options
250 {
251  struct gc_arena gc;
252  bool gc_owned;
253 
254  /* first config file */
255  const char *config;
256 
257  /* major mode */
258 #define MODE_POINT_TO_POINT 0
259 #define MODE_SERVER 1
260  int mode;
261 
262  /* enable forward compatibility for post-2.1 features */
266  unsigned int backwards_compatible;
267 
268  /* list of options that should be ignored even if unknown */
269  const char **ignore_unknown_option;
270 
271  /* persist parms */
274 
275  const char *key_pass_file;
281  bool genkey;
283  const char *genkey_filename;
284  const char *genkey_extra_data;
285 
286  /* Networking parms */
290 
292  /* Do not advance the connection or remote addr list */
294  /* Advance directly to the next remote, skipping remaining addresses of the
295  * current remote */
297  /* Counts the number of unsuccessful connection attempts */
298  unsigned int unsuccessful_attempts;
299  /* count of connection entries to advance by when no_advance is not set */
301  /* the server can suggest a backoff time to the client, it
302  * will still be capped by the max timeout between connections
303  * (300s by default) */
305 
306 #if ENABLE_MANAGEMENT
308 #endif
309 
311 
313 
315  const char *ipchange;
316  const char *dev;
317  const char *dev_type;
318  const char *dev_node;
319  const char *lladdr;
320  int topology; /* one of the TOP_x values from proto.h */
321  const char *ifconfig_local;
323  const char *ifconfig_ipv6_local;
325  const char *ifconfig_ipv6_remote;
328  int shaper;
329 
331 
332  bool mtu_test;
333 
334 #ifdef ENABLE_MEMSTATS
335  char *memstats_fn;
336 #endif
337 
338  bool mlock;
339 
340  int keepalive_ping; /* a proxy for ping/ping-restart */
342 
343  int inactivity_timeout; /* --inactive */
345 
346  int session_timeout; /* Force-kill session after n seconds */
347 
348  int ping_send_timeout; /* Send a TCP/UDP ping to remote every n seconds */
349  int ping_rec_timeout; /* Expect a TCP/UDP ping from remote at least once every n seconds */
350  bool ping_timer_remote; /* Run ping timer only if we have a remote address */
351 
352 #define PING_UNDEF 0
353 #define PING_EXIT 1
354 #define PING_RESTART 2
355  int ping_rec_timeout_action; /* What action to take on ping_rec_timeout (exit or restart)? */
356 
357  bool persist_tun; /* Don't close/reopen TUN/TAP dev on SIGUSR1 or PING_RESTART */
358  bool persist_local_ip; /* Don't re-resolve local address on SIGUSR1 or PING_RESTART */
359  bool persist_remote_ip; /* Don't re-resolve remote address on SIGUSR1 or PING_RESTART */
360 
361 #if PASSTOS_CAPABILITY
362  bool passtos;
363 #endif
364 
365  int resolve_retry_seconds; /* If hostname resolve fails, retry for n seconds */
367  const char *ip_remote_hint;
368 
370  /* DCO is disabled and should not be used as backend driver for the
371  * tun/tap device */
373 
374  /* Misc parms */
375  const char *username;
376  const char *groupname;
377  const char *chroot_dir;
378  const char *cd_dir;
379 #ifdef ENABLE_SELINUX
380  char *selinux_context;
381 #endif
382  const char *writepid;
383  const char *up_script;
384  const char *down_script;
386  bool down_pre;
387  bool up_delay;
389  bool daemon;
390 
392 
393  bool log;
396  int nice;
398  int mute;
399 
400 #ifdef ENABLE_DEBUG
401  int gremlin;
402 #endif
403 
404  const char *status_file;
407 
408  /* optimize TUN/TAP/UDP writes */
409  bool fast_io;
410 
412 
413  /* buffer sizes */
414  int rcvbuf;
415  int sndbuf;
416 
417  /* mark value */
418  int mark;
419  char *bind_dev;
420 
421  /* socket flags */
422  unsigned int sockflags;
423 
424  /* route management */
425  const char *route_script;
426  const char *route_predown_script;
439  bool allow_pull_fqdn; /* as a client, allow server to push a FQDN for certain parameters */
441 
442  /* Enable options consistency check between peers */
443  bool occ;
444 
445 #ifdef ENABLE_MANAGEMENT
446  const char *management_addr;
447  const char *management_port;
448  const char *management_user_pass;
452 
455 
457 #endif
458  /* Mask of MF_ values of manage.h */
459  unsigned int management_flags;
460 
461 #ifdef ENABLE_PLUGIN
463 #endif
464 
465  /* the tmp dir is for now only used in the P2P server context */
466  const char *tmp_dir;
468  in_addr_t server_network;
469  in_addr_t server_netmask;
470  bool server_ipv6_defined; /* IPv6 */
471  struct in6_addr server_network_ipv6; /* IPv6 */
472  unsigned int server_netbits_ipv6; /* IPv6 */
473 
474 #define SF_NOPOOL (1<<0)
475 #define SF_TCP_NODELAY_HELPER (1<<1)
476 #define SF_NO_PUSH_ROUTE_GATEWAY (1<<2)
477  unsigned int server_flags;
478 
480 
482  in_addr_t server_bridge_ip;
486 
490  in_addr_t ifconfig_pool_end;
494 
495  bool ifconfig_ipv6_pool_defined; /* IPv6 */
496  struct in6_addr ifconfig_ipv6_pool_base; /* IPv6 */
498 
503  const char *learn_address_script;
505  const char *client_config_dir;
507  bool disable;
508  const char *override_username;
511  struct iroute *iroutes;
512  struct iroute_ipv6 *iroutes_ipv6; /* IPv6 */
520  bool push_ifconfig_ipv4_blocked; /* IPv4 */
521  bool push_ifconfig_ipv6_defined; /* IPv6 */
522  struct in6_addr push_ifconfig_ipv6_local; /* IPv6 */
524  struct in6_addr push_ifconfig_ipv6_remote; /* IPv6 */
525  bool push_ifconfig_ipv6_blocked; /* IPv6 */
528 
529  int cf_max;
530  int cf_per;
531 
534 
539 
548 
549 #if PORT_SHARE
550  char *port_share_host;
551  char *port_share_port;
552  const char *port_share_journal_dir;
553 #endif
554 
555  bool client;
556  bool pull; /* client pull of config options from server */
559  const char *auth_user_pass_file;
562 
564 
565 #ifdef ENABLE_MANAGEMENT
567 #endif
568  /* Cipher parms */
569  const char *shared_secret_file;
573  const char *ciphername;
577  const char *ncp_ciphers_conf;
578  const char *ncp_ciphers;
579  const char *authname;
580  const char *engine;
585  const char *packet_id_file;
587 #ifdef ENABLE_PREDICTION_RESISTANCE
588  bool use_prediction_resistance;
589 #endif
590 
591  /* TLS (control channel) parms */
594  const char *ca_file;
596  const char *ca_path;
597  const char *dh_file;
599  const char *cert_file;
601  const char *extra_certs_file;
603  const char *priv_key_file;
605  const char *pkcs12_file;
607  const char *cipher_list;
608  const char *cipher_list_tls13;
609  const char *tls_groups;
610  const char *tls_cert_profile;
611  const char *ecdh_curve;
612  const char *tls_verify;
615  const char *verify_x509_name;
616  const char *crl_file;
618 
619  int ns_cert_type; /* set to 0, NS_CERT_CHECK_SERVER, or NS_CERT_CHECK_CLIENT */
621  const char *remote_cert_eku;
626  unsigned int ssl_flags; /* set to SSLF_x flags from ssl.h */
627 
628 #ifdef ENABLE_PKCS11
629  const char *pkcs11_providers[MAX_PARMS];
630  unsigned pkcs11_private_mode[MAX_PARMS];
631  bool pkcs11_protected_authentication[MAX_PARMS];
632  bool pkcs11_cert_private[MAX_PARMS];
633  int pkcs11_pin_cache_period;
634  const char *pkcs11_id;
636 #endif
637 
638 #ifdef ENABLE_CRYPTOAPI
639  const char *cryptoapi_cert;
640 #endif
641  /* Per-packet timeout on control channel */
643 
644  /* Data channel key renegotiation parameters */
649 
650  /* Data channel key handshake must finalize
651  * within n seconds of handshake initiation. */
653 
654 #ifdef ENABLE_X509ALTUSERNAME
655  /* Field list used to be the username in X509 cert. */
656  char *x509_username_field[MAX_PARMS];
657 #endif
658 
659  /* Old key allowed to live n seconds after new key goes active */
661 
662  /* Shared secret used for TLS control channel authentication */
663  const char *tls_auth_file;
665 
666  /* Shared secret used for TLS control channel authenticated encryption */
667  const char *tls_crypt_file;
669 
670  /* Client-specific secret or server key used for TLS control channel
671  * authenticated encryption v2 */
672  const char *tls_crypt_v2_file;
674 
676 
678 
679  /* Allow only one session */
681 
683 
684  bool tls_exit;
685 
686  const struct x509_track *x509_track;
687 
688  /* special state parms */
690 
691 #ifdef _WIN32
692  HANDLE msg_channel;
693  const char *exit_event_name;
699 #endif
700 
702  uint32_t peer_id;
703 
704 #ifdef HAVE_EXPORT_KEYING_MATERIAL
705  /* Keying Material Exporters [RFC 5705] */
706  const char *keying_material_exporter_label;
707  int keying_material_exporter_length;
708 #endif
709  /* force using TLS key material export for data channel key generation */
711 
714  uint16_t vlan_pvid;
715 
717 
718  /* Useful when packets sent by openvpn itself are not subject
719  * to the routing tables that would move packets into the tunnel. */
721 
722  /* data channel crypto flags set by push/pull. Reuses the CO_* crypto_flags */
724 };
725 
726 #define streq(x, y) (!strcmp((x), (y)))
727 
728 /*
729  * Option classes.
730  */
731 #define OPT_P_GENERAL (1<<0)
732 #define OPT_P_UP (1<<1)
733 #define OPT_P_ROUTE (1<<2)
734 #define OPT_P_DHCPDNS (1<<3) /* includes ip windows options like */
735 #define OPT_P_SCRIPT (1<<4)
736 #define OPT_P_SETENV (1<<5)
737 #define OPT_P_SHAPER (1<<6)
738 #define OPT_P_TIMER (1<<7)
739 #define OPT_P_PERSIST (1<<8)
740 #define OPT_P_PERSIST_IP (1<<9)
741 #define OPT_P_COMP (1<<10) /* TODO */
742 #define OPT_P_MESSAGES (1<<11)
743 #define OPT_P_NCP (1<<12)
744 #define OPT_P_TLS_PARMS (1<<13) /* TODO */
745 #define OPT_P_MTU (1<<14) /* TODO */
746 #define OPT_P_NICE (1<<15)
747 #define OPT_P_PUSH (1<<16)
748 #define OPT_P_INSTANCE (1<<17)
749 #define OPT_P_CONFIG (1<<18)
750 #define OPT_P_EXPLICIT_NOTIFY (1<<19)
751 #define OPT_P_ECHO (1<<20)
752 #define OPT_P_INHERIT (1<<21)
753 #define OPT_P_ROUTE_EXTRAS (1<<22)
754 #define OPT_P_PULL_MODE (1<<23)
755 #define OPT_P_PLUGIN (1<<24)
756 #define OPT_P_SOCKBUF (1<<25)
757 #define OPT_P_SOCKFLAGS (1<<26)
758 #define OPT_P_CONNECTION (1<<27)
759 #define OPT_P_PEER_ID (1<<28)
760 #define OPT_P_INLINE (1<<29)
761 #define OPT_P_PUSH_MTU (1<<30)
762 
763 #define OPT_P_DEFAULT (~(OPT_P_INSTANCE|OPT_P_PULL_MODE))
764 
765 #define PULL_DEFINED(opt) ((opt)->pull)
766 #define PUSH_DEFINED(opt) ((opt)->push_list)
767 
768 #ifndef PULL_DEFINED
769 #define PULL_DEFINED(opt) (false)
770 #endif
771 
772 #ifndef PUSH_DEFINED
773 #define PUSH_DEFINED(opt) (false)
774 #endif
775 
776 #ifdef _WIN32
777 #define ROUTE_OPTION_FLAGS(o) ((o)->route_method & ROUTE_METHOD_MASK)
778 #else
779 #define ROUTE_OPTION_FLAGS(o) (0)
780 #endif
781 
782 #define SHAPER_DEFINED(opt) ((opt)->shaper)
783 
784 #ifdef ENABLE_PLUGIN
785 #define PLUGIN_OPTION_LIST(opt) ((opt)->plugin_list)
786 #else
787 #define PLUGIN_OPTION_LIST(opt) (NULL)
788 #endif
789 
790 #ifdef ENABLE_MANAGEMENT
791 #define MAN_CLIENT_AUTH_ENABLED(opt) ((opt)->management_flags & MF_CLIENT_AUTH)
792 #else
793 #define MAN_CLIENT_AUTH_ENABLED(opt) (false)
794 #endif
795 
796 void parse_argv(struct options *options,
797  const int argc,
798  char *argv[],
799  const int msglevel,
800  const unsigned int permission_mask,
801  unsigned int *option_types_found,
802  struct env_set *es);
803 
804 void notnull(const char *arg, const char *description);
805 
806 void usage_small(void);
807 
808 void show_library_versions(const unsigned int flags);
809 
810 #ifdef _WIN32
811 void show_windows_version(const unsigned int flags);
812 
813 #endif
814 
815 void show_dco_version(const unsigned int flags);
816 
817 void init_options(struct options *o, const bool init_gc);
818 
819 void uninit_options(struct options *o);
820 
821 void setenv_settings(struct env_set *es, const struct options *o);
822 
823 void show_settings(const struct options *o);
824 
825 bool string_defined_equal(const char *s1, const char *s2);
826 
827 const char *options_string_version(const char *s, struct gc_arena *gc);
828 
829 char *options_string(const struct options *o,
830  const struct frame *frame,
831  struct tuntap *tt,
832  openvpn_net_ctx_t *ctx,
833  bool remote,
834  struct gc_arena *gc);
835 
836 bool options_cmp_equal_safe(char *actual, const char *expected, size_t actual_n);
837 
838 void options_warning_safe(char *actual, const char *expected, size_t actual_n);
839 
840 bool options_cmp_equal(char *actual, const char *expected);
841 
842 void options_warning(char *actual, const char *expected);
843 
855  const char *opt_name, struct gc_arena *gc);
856 
857 
858 void options_postprocess(struct options *options, struct env_set *es);
859 
860 bool options_postprocess_pull(struct options *o, struct env_set *es);
861 
862 void pre_connect_restore(struct options *o, struct gc_arena *gc);
863 
864 bool apply_push_options(struct options *options,
865  struct buffer *buf,
866  unsigned int permission_mask,
867  unsigned int *option_types_found,
868  struct env_set *es);
869 
870 void options_detach(struct options *o);
871 
872 void options_server_import(struct options *o,
873  const char *filename,
874  int msglevel,
875  unsigned int permission_mask,
876  unsigned int *option_types_found,
877  struct env_set *es);
878 
879 void pre_pull_default(struct options *o);
880 
881 void rol_check_alloc(struct options *options);
882 
883 int parse_line(const char *line,
884  char *p[],
885  const int n,
886  const char *file,
887  const int line_num,
888  int msglevel,
889  struct gc_arena *gc);
890 
891 /*
892  * parse/print topology coding
893  */
894 
895 int parse_topology(const char *str, const int msglevel);
896 
897 const char *print_topology(const int topology);
898 
899 /*
900  * Manage auth-retry variable
901  */
902 
903 #define AR_NONE 0
904 #define AR_INTERACT 1
905 #define AR_NOINTERACT 2
906 
907 int auth_retry_get(void);
908 
909 bool auth_retry_set(const int msglevel, const char *option);
910 
911 const char *auth_retry_print(void);
912 
914  const char *config,
915  const int msglevel,
916  const unsigned int permission_mask,
917  unsigned int *option_types_found,
918  struct env_set *es);
919 
920 bool key_is_external(const struct options *options);
921 
922 bool has_udp_in_local_list(const struct options *options);
923 
924 bool has_tcp_in_local_list(const struct options *options);
925 
929 static inline bool
930 dco_enabled(const struct options *o)
931 {
932 #ifdef ENABLE_DCO
933  return !o->disable_dco;
934 #else
935  return false;
936 #endif /* ENABLE_DCO */
937 }
938 
939 #endif /* ifndef OPTIONS_H */
connection_entry::tls_crypt_file
const char * tls_crypt_file
Definition: options.h:167
options::keepalive_timeout
int keepalive_timeout
Definition: options.h:341
options::server_network_ipv6
struct in6_addr server_network_ipv6
Definition: options.h:471
local_list::len
int len
Definition: options.h:191
options::disable_dco
bool disable_dco
Definition: options.h:372
options::replay_time
int replay_time
Definition: options.h:584
GENKEY_AUTH_TOKEN
@ GENKEY_AUTH_TOKEN
Definition: options.h:237
options::genkey_type
enum genkey_type genkey_type
Definition: options.h:282
options::vlan_tagging
bool vlan_tagging
Definition: options.h:712
options::show_engines
bool show_engines
Definition: options.h:278
local_entry::port
const char * port
Definition: options.h:100
options::ssl_flags
unsigned int ssl_flags
Definition: options.h:626
options::verbosity
int verbosity
Definition: options.h:397
iroute
Definition: route.h:241
connection_entry::mtu_discover_type
int mtu_discover_type
Definition: options.h:137
options::verify_hash
struct verify_hash_list * verify_hash
Definition: options.h:622
connection_entry::mssfix_encap
bool mssfix_encap
Definition: options.h:144
connection_entry::mssfix
int mssfix
Definition: options.h:142
compress_options
Definition: comp.h:66
options::show_digests
bool show_digests
Definition: options.h:277
pull_filter_list
Definition: options.c:956
connection_entry::link_mtu
int link_mtu
Definition: options.h:132
options::use_peer_id
bool use_peer_id
Definition: options.h:701
options::sc_info
struct static_challenge_info sc_info
Definition: options.h:566
options::client_connect_script
const char * client_connect_script
Definition: options.h:501
options::tcp_queue_limit
int tcp_queue_limit
Definition: options.h:510
options::enable_ncp_fallback
bool enable_ncp_fallback
If defined fall back to ciphername if NCP fails.
Definition: options.h:574
GENKEY_SECRET
@ GENKEY_SECRET
Definition: options.h:234
VLAN_ONLY_UNTAGGED_OR_PRIORITY
@ VLAN_ONLY_UNTAGGED_OR_PRIORITY
Definition: options.h:221
options::nice
int nice
Definition: options.h:396
options::cf_initial_per
int cf_initial_per
Definition: options.h:533
options_warning_safe
void options_warning_safe(char *actual, const char *expected, size_t actual_n)
Definition: options.c:4624
connection_entry::connect_retry_seconds
int connect_retry_seconds
Definition: options.h:117
connection_entry::explicit_exit_notification
int explicit_exit_notification
Definition: options.h:148
options::route_gateway_via_dhcp
bool route_gateway_via_dhcp
Definition: options.h:438
options::up_script
const char * up_script
Definition: options.h:383
options::keepalive_ping
int keepalive_ping
Definition: options.h:340
connection_entry::socks_proxy_server
const char * socks_proxy_server
Definition: options.h:121
options_pre_connect::route_ipv6_default_gateway
const char * route_ipv6_default_gateway
Definition: options.h:75
provider_list
Definition: options.h:210
options::server_flags
unsigned int server_flags
Definition: options.h:477
options::ce_advance_count
int ce_advance_count
Definition: options.h:300
options::auth_token_secret_file
const char * auth_token_secret_file
Definition: options.h:546
options::ipchange
const char * ipchange
Definition: options.h:315
options::show_ciphers
bool show_ciphers
Definition: options.h:276
RH_PORT_LEN
#define RH_PORT_LEN
Definition: options.h:229
argv
Definition: argv.h:35
options::enable_c2c
bool enable_c2c
Definition: options.h:526
options::duplicate_cn
bool duplicate_cn
Definition: options.h:527
connection_entry::tls_crypt_file_inline
bool tls_crypt_file_inline
Definition: options.h:168
show_dco_version
void show_dco_version(const unsigned int flags)
Definition: options.c:4855
options::server_network
in_addr_t server_network
Definition: options.h:468
options::inactivity_minimum_bytes
int64_t inactivity_minimum_bytes
Definition: options.h:344
manage.h
options::ca_path
const char * ca_path
Definition: options.h:596
connection_entry::remote_port
const char * remote_port
Definition: options.h:111
client_nat_option_list
Definition: clinat.h:43
options::forward_compatible
bool forward_compatible
Definition: options.h:263
options::cert_file
const char * cert_file
Definition: options.h:599
es
struct env_set * es
Definition: test_pkcs11.c:141
hash
Definition: list.h:56
options::route_nopull
bool route_nopull
Definition: options.h:437
options::server_bridge_ip
in_addr_t server_bridge_ip
Definition: options.h:482
connection_entry::tun_mtu_defined
bool tun_mtu_defined
Definition: options.h:129
options::key_direction
int key_direction
Definition: options.h:572
options::topology
int topology
Definition: options.h:320
verify_hash_list::next
struct verify_hash_list * next
Definition: options.h:245
options::authname
const char * authname
Definition: options.h:579
options::dev_type
const char * dev_type
Definition: options.h:317
options::iroutes
struct iroute * iroutes
Definition: options.h:511
title_string
const char title_string[]
Definition: options.c:69
string_defined_equal
bool string_defined_equal(const char *s1, const char *s2)
Definition: options.c:4911
options::status_file_update_freq
int status_file_update_freq
Definition: options.h:406
options::tls_client
bool tls_client
Definition: options.h:593
options::shared_secret_file
const char * shared_secret_file
Definition: options.h:569
options::extra_certs_file_inline
bool extra_certs_file_inline
Definition: options.h:602
connection_entry::tls_crypt_v2_force_cookie
bool tls_crypt_v2_force_cookie
Definition: options.h:176
connection_entry::connect_timeout
int connect_timeout
Definition: options.h:119
options::server_defined
bool server_defined
Definition: options.h:467
plugin_option_list
Definition: plugin.h:50
GENKEY_TLS_CRYPTV2_CLIENT
@ GENKEY_TLS_CRYPTV2_CLIENT
Definition: options.h:235
options::cipher_list
const char * cipher_list
Definition: options.h:607
vlan_acceptable_frames
vlan_acceptable_frames
Definition: options.h:218
options::mode
int mode
Definition: options.h:260
options::session_timeout
int session_timeout
Definition: options.h:346
options::mute
int mute
Definition: options.h:398
VLAN_ONLY_TAGGED
@ VLAN_ONLY_TAGGED
Definition: options.h:220
remote_host_store::port
char port[RH_PORT_LEN]
Definition: options.h:230
MAX_PARMS
#define MAX_PARMS
Definition: options.h:52
connection_entry::link_mtu_defined
bool link_mtu_defined
Definition: options.h:133
options::push_ifconfig_ipv6_local
struct in6_addr push_ifconfig_ipv6_local
Definition: options.h:522
provider_list::providers
provider_t * providers[MAX_PARMS]
Definition: options.h:215
options::ce
struct connection_entry ce
Definition: options.h:288
options::msg_channel
HANDLE msg_channel
Definition: options.h:692
auth_retry_print
const char * auth_retry_print(void)
Definition: options.c:4784
options_server_import
void options_server_import(struct options *o, const char *filename, int msglevel, unsigned int permission_mask, unsigned int *option_types_found, struct env_set *es)
Definition: options.c:5515
usage_small
void usage_small(void)
Definition: options.c:4838
options::n_bcast_buf
int n_bcast_buf
Definition: options.h:509
options::ifconfig_ipv6_pool_defined
bool ifconfig_ipv6_pool_defined
Definition: options.h:495
verify_hash_list
Definition: options.h:240
options::verify_hash_algo
hash_algo_type verify_hash_algo
Definition: options.h:623
openvpn_net_ctx_t
void * openvpn_net_ctx_t
Definition: networking.h:28
clinat.h
options::genkey_extra_data
const char * genkey_extra_data
Definition: options.h:284
remote_entry::remote
const char * remote
Definition: options.h:181
options_pre_connect::foreign_option_index
int foreign_option_index
Definition: options.h:89
connection_list::capacity
int capacity
Definition: options.h:197
plugin.h
options_pre_connect::ping_rec_timeout_action
int ping_rec_timeout_action
Definition: options.h:87
options::shaper
int shaper
Definition: options.h:328
connection_entry::local_list
struct local_list * local_list
Definition: options.h:106
options::tls_export_peer_cert_dir
const char * tls_export_peer_cert_dir
Definition: options.h:613
options_string_version
const char * options_string_version(const char *s, struct gc_arena *gc)
Definition: options.c:4630
options::cd_dir
const char * cd_dir
Definition: options.h:378
RH_HOST_LEN
#define RH_HOST_LEN
Definition: options.h:227
options::remote_random
bool remote_random
Definition: options.h:314
options::ifconfig_noexec
bool ifconfig_noexec
Definition: options.h:326
frame
Packet geometry parameters.
Definition: mtu.h:98
options::push_continuation
int push_continuation
Definition: options.h:557
local_list
Definition: options.h:189
connection_entry::fragment_encap
bool fragment_encap
Definition: options.h:140
options::tls_server
bool tls_server
Definition: options.h:592
options::allow_deprecated_insecure_static_crypto
bool allow_deprecated_insecure_static_crypto
Definition: options.h:571
options::auth_token_renewal
int auth_token_renewal
Definition: options.h:545
options_pre_connect::routes_ipv6
struct route_ipv6_option_list * routes_ipv6
Definition: options.h:72
connection_entry::bind_local
bool bind_local
Definition: options.h:116
provider_list::names
const char * names[MAX_PARMS]
Definition: options.h:213
connection_entry
Definition: options.h:104
remote_entry::af
sa_family_t af
Definition: options.h:184
options::allow_recursive_routing
bool allow_recursive_routing
Definition: options.h:720
has_udp_in_local_list
bool has_udp_in_local_list(const struct options *options)
Definition: options.c:9565
options::routes_ipv6
struct route_ipv6_option_list * routes_ipv6
Definition: options.h:435
options::tls_exit
bool tls_exit
Definition: options.h:684
options::route_noexec
bool route_noexec
Definition: options.h:430
options_postprocess
void options_postprocess(struct options *options, struct env_set *es)
Definition: options.c:4168
options::tls_cert_profile
const char * tls_cert_profile
Definition: options.h:610
sa_family_t
unsigned short sa_family_t
Definition: syshead.h:395
options::windows_driver
enum tun_driver_type windows_driver
Definition: options.h:698
options::renegotiate_seconds
int renegotiate_seconds
Definition: options.h:647
parse_topology
int parse_topology(const char *str, const int msglevel)
Definition: options.c:4705
options::persist_local_ip
bool persist_local_ip
Definition: options.h:358
options::verify_hash_depth
int verify_hash_depth
Definition: options.h:624
options::ignore_unknown_option
const char ** ignore_unknown_option
Definition: options.h:269
options::ecdh_curve
const char * ecdh_curve
Definition: options.h:611
mtu.h
parse_line
int parse_line(const char *line, char *p[], const int n, const char *file, const int line_num, int msglevel, struct gc_arena *gc)
Definition: options.c:4948
options::show_curves
bool show_curves
Definition: options.h:280
connection_list::len
int len
Definition: options.h:198
options::http_proxy_override
struct http_proxy_options * http_proxy_override
Definition: options.h:307
options::cipher_list_tls13
const char * cipher_list_tls13
Definition: options.h:608
options::up_delay
bool up_delay
Definition: options.h:387
options::writepid
const char * writepid
Definition: options.h:382
options_pre_connect::tuntap_options_defined
bool tuntap_options_defined
Definition: options.h:65
options::ncp_ciphers_conf
const char * ncp_ciphers_conf
The original ncp_ciphers specified by the user in the configuration.
Definition: options.h:577
options_pre_connect::ciphername
const char * ciphername
Definition: options.h:82
options::max_clients
int max_clients
Definition: options.h:535
options::disable
bool disable
Definition: options.h:507
connection_entry::socks_proxy_port
const char * socks_proxy_port
Definition: options.h:122
options::dh_file
const char * dh_file
Definition: options.h:597
options::resolve_in_advance
bool resolve_in_advance
Definition: options.h:366
options::ifconfig_nowarn
bool ifconfig_nowarn
Definition: options.h:327
options::dev
const char * dev
Definition: options.h:316
connection_list::current
int current
Definition: options.h:199
local_list::array
struct local_entry * array[CONNECTION_LIST_SIZE]
Definition: options.h:192
options::management_port
const char * management_port
Definition: options.h:447
options::rh_store
struct remote_host_store * rh_store
Definition: options.h:310
options::groupname
const char * groupname
Definition: options.h:376
connection_entry::connect_retry_seconds_max
int connect_retry_seconds_max
Definition: options.h:118
options::ip_remote_hint
const char * ip_remote_hint
Definition: options.h:367
options::single_session
bool single_session
Definition: options.h:680
options::auth_user_pass_file
const char * auth_user_pass_file
Definition: options.h:559
options::client_nat
struct client_nat_option_list * client_nat
Definition: options.h:440
local_entry
Definition: options.h:97
options_pre_connect::routes
struct route_option_list * routes
Definition: options.h:69
options::server_netmask
in_addr_t server_netmask
Definition: options.h:469
connection_list
Definition: options.h:195
options::cf_initial_max
int cf_initial_max
Definition: options.h:532
options::ping_send_timeout
int ping_send_timeout
Definition: options.h:348
remote_entry::remote_port
const char * remote_port
Definition: options.h:182
options::x509_track
const struct x509_track * x509_track
Definition: options.h:686
options::client
bool client
Definition: options.h:555
tun.h
options::shared_secret_file_inline
bool shared_secret_file_inline
Definition: options.h:570
options::pre_connect
struct options_pre_connect * pre_connect
Definition: options.h:561
route_option_list
Definition: route.h:93
connection_entry::bind_defined
bool bind_defined
Definition: options.h:114
options::management_client_group
const char * management_client_group
Definition: options.h:454
options::test_crypto
bool test_crypto
Definition: options.h:586
options::verify_hash_no_ca
bool verify_hash_no_ca
Definition: options.h:625
options::block_outside_dns
bool block_outside_dns
Definition: options.h:697
options_pre_connect::route_default_gateway
const char * route_default_gateway
Definition: options.h:74
options::ifconfig_ipv6_netbits
int ifconfig_ipv6_netbits
Definition: options.h:324
options::ncp_ciphers
const char * ncp_ciphers
Definition: options.h:578
options::push_ifconfig_ipv6_defined
bool push_ifconfig_ipv6_defined
Definition: options.h:521
options::tls_crypt_file
const char * tls_crypt_file
Definition: options.h:667
connection_entry::mssfix_fixed
bool mssfix_fixed
Definition: options.h:146
setenv_settings
void setenv_settings(struct env_set *es, const struct options *o)
Definition: options.c:1030
options::comp
struct compress_options comp
Definition: options.h:411
options::persist_config
bool persist_config
Definition: options.h:272
options_pre_connect::routes_ipv6_defined
bool routes_ipv6_defined
Definition: options.h:71
options::imported_protocol_flags
unsigned int imported_protocol_flags
Definition: options.h:723
options::auth_token_lifetime
int auth_token_lifetime
Definition: options.h:544
options::push_peer_info
bool push_peer_info
Definition: options.h:682
parse_argv
void parse_argv(struct options *options, const int argc, char *argv[], const int msglevel, const unsigned int permission_mask, unsigned int *option_types_found, struct env_set *es)
Definition: options.c:5372
options::allow_pull_fqdn
bool allow_pull_fqdn
Definition: options.h:439
options::tls_crypt_v2_file
const char * tls_crypt_v2_file
Definition: options.h:672
options::push_ifconfig_ipv6_blocked
bool push_ifconfig_ipv6_blocked
Definition: options.h:525
route.h
options::management_state_buffer_size
int management_state_buffer_size
Definition: options.h:451
remote_host_store::host
char host[RH_HOST_LEN]
Definition: options.h:228
options::push_ifconfig_defined
bool push_ifconfig_defined
Definition: options.h:513
options::persist_tun
bool persist_tun
Definition: options.h:357
connection_entry::tls_auth_file
const char * tls_auth_file
Definition: options.h:162
options::backwards_compatible
unsigned int backwards_compatible
What version we should try to be compatible with as major * 10000 + minor * 100 + patch,...
Definition: options.h:266
options::tls_crypt_v2_file_inline
bool tls_crypt_v2_file_inline
Definition: options.h:673
options::proto_force
int proto_force
Definition: options.h:330
options::tls_auth_file
const char * tls_auth_file
Definition: options.h:663
connection_entry::tls_crypt_v2_file_inline
bool tls_crypt_v2_file_inline
Definition: options.h:173
options::route_predown_script
const char * route_predown_script
Definition: options.h:426
options::push_ifconfig_constraint_defined
bool push_ifconfig_constraint_defined
Definition: options.h:517
connection_entry::tls_auth_file_inline
bool tls_auth_file_inline
Definition: options.h:163
options::auth_token_secret_file_inline
bool auth_token_secret_file_inline
Definition: options.h:547
options::server_netbits_ipv6
unsigned int server_netbits_ipv6
Definition: options.h:472
connection_entry::tls_crypt_v2_file
const char * tls_crypt_v2_file
Definition: options.h:172
options::pkcs12_file_inline
bool pkcs12_file_inline
Definition: options.h:606
options::verify_x509_type
int verify_x509_type
Definition: options.h:614
options
Definition: options.h:249
options::auth_user_pass_file_inline
bool auth_user_pass_file_inline
Definition: options.h:560
connection_entry::key_direction
int key_direction
Definition: options.h:164
options::providers
struct provider_list providers
Definition: options.h:581
options::log
bool log
Definition: options.h:393
options::gc
struct gc_arena gc
Definition: options.h:251
options::mlock
bool mlock
Definition: options.h:338
options_pre_connect::ping_send_timeout
int ping_send_timeout
Definition: options.h:85
options::tls_timeout
int tls_timeout
Definition: options.h:642
options::management_addr
const char * management_addr
Definition: options.h:446
options::tls_verify
const char * tls_verify
Definition: options.h:612
hash_algo_type
hash_algo_type
Types referencing specific message digest hashing algorithms.
Definition: crypto_backend.h:52
options::down_script
const char * down_script
Definition: options.h:384
connection_entry::tun_mtu_extra
int tun_mtu_extra
Definition: options.h:130
options::no_advance
bool no_advance
Definition: options.h:293
tuntap_options
Definition: tun.h:77
options::virtual_hash_size
int virtual_hash_size
Definition: options.h:500
options::ifconfig_pool_netmask
in_addr_t ifconfig_pool_netmask
Definition: options.h:491
options::server_ipv6_defined
bool server_ipv6_defined
Definition: options.h:470
connection_entry::local_port_defined
bool local_port_defined
Definition: options.h:110
options::show_tls_ciphers
bool show_tls_ciphers
Definition: options.h:279
options::push_ifconfig_ipv6_netbits
int push_ifconfig_ipv6_netbits
Definition: options.h:523
options::tls_crypt_file_inline
bool tls_crypt_file_inline
Definition: options.h:668
options::renegotiate_seconds_min
int renegotiate_seconds_min
Definition: options.h:648
options::persist_remote_ip
bool persist_remote_ip
Definition: options.h:359
options::ccd_exclusive
bool ccd_exclusive
Definition: options.h:506
options::stale_routes_check_interval
int stale_routes_check_interval
Definition: options.h:537
options::scheduled_exit_interval
int scheduled_exit_interval
Definition: options.h:563
options_pre_connect::client_nat
struct client_nat_option_list * client_nat
Definition: options.h:78
options::ping_rec_timeout
int ping_rec_timeout
Definition: options.h:349
options::pkcs12_file
const char * pkcs12_file
Definition: options.h:605
options::client_crresponse_script
const char * client_crresponse_script
Definition: options.h:504
buffer
Wrapper structure for dynamically allocated memory.
Definition: buffer.h:60
GENKEY_TLS_CRYPTV2_SERVER
@ GENKEY_TLS_CRYPTV2_SERVER
Definition: options.h:236
options::genkey
bool genkey
Definition: options.h:281
options::verify_x509_name
const char * verify_x509_name
Definition: options.h:615
options::replay_window
int replay_window
Definition: options.h:583
options_warning
void options_warning(char *actual, const char *expected)
Definition: options.c:4465
options::route_ipv6_default_gateway
const char * route_ipv6_default_gateway
Definition: options.h:428
options::foreign_option_index
int foreign_option_index
Definition: options.h:689
static_challenge_info
Definition: misc.h:93
options::exit_event_name
const char * exit_event_name
Definition: options.h:693
options::push_ifconfig_ipv6_remote
struct in6_addr push_ifconfig_ipv6_remote
Definition: options.h:524
options::management_certificate
const char * management_certificate
Definition: options.h:456
options_pre_connect::comp
struct compress_options comp
Definition: options.h:90
provider_t
void provider_t
Definition: crypto_mbedtls.h:51
options::route_delay_defined
bool route_delay_defined
Definition: options.h:433
options::handshake_window
int handshake_window
Definition: options.h:652
options::remote_cert_ku
unsigned remote_cert_ku[MAX_PARMS]
Definition: options.h:620
connection_entry::occ_mtu
int occ_mtu
Definition: options.h:126
options::ping_timer_remote
bool ping_timer_remote
Definition: options.h:350
options::crl_file_inline
bool crl_file_inline
Definition: options.h:617
options::status_file_version
int status_file_version
Definition: options.h:405
options::route_default_metric
int route_default_metric
Definition: options.h:429
key_is_external
bool key_is_external(const struct options *options)
Definition: options.c:5690
options::override_username
const char * override_username
Definition: options.h:508
options::sndbuf
int sndbuf
Definition: options.h:415
options::block_ipv6
bool block_ipv6
Definition: options.h:436
proxy.h
options::fast_io
bool fast_io
Definition: options.h:409
options::force_key_material_export
bool force_key_material_export
Definition: options.h:710
options::server_bridge_proxy_dhcp
bool server_bridge_proxy_dhcp
Definition: options.h:479
options::dh_file_inline
bool dh_file_inline
Definition: options.h:598
options::push_ifconfig_ipv4_blocked
bool push_ifconfig_ipv4_blocked
Definition: options.h:520
options::management_flags
unsigned int management_flags
Definition: options.h:459
options::route_method
int route_method
Definition: options.h:696
options::cert_file_inline
bool cert_file_inline
Definition: options.h:600
options::server_bridge_pool_start
in_addr_t server_bridge_pool_start
Definition: options.h:484
options::management_echo_buffer_size
int management_echo_buffer_size
Definition: options.h:450
options::unsuccessful_attempts
unsigned int unsuccessful_attempts
Definition: options.h:298
connection_list::array
struct connection_entry ** array
Definition: options.h:200
show_settings
void show_settings(const struct options *o)
Definition: options.c:1838
options::client_config_dir
const char * client_config_dir
Definition: options.h:505
gc_arena
Garbage collection arena used to keep track of dynamically allocated memory.
Definition: buffer.h:116
options::status_file
const char * status_file
Definition: options.h:404
options::genkey_filename
const char * genkey_filename
Definition: options.h:283
options::renegotiate_packets
int64_t renegotiate_packets
Definition: options.h:646
remote_host_store
Definition: options.h:225
options::auth_token_call_auth
bool auth_token_call_auth
Definition: options.h:543
auth_retry_get
int auth_retry_get(void)
Definition: options.c:4755
remote_list::array
struct remote_entry ** array
Definition: options.h:207
options::vlan_pvid
uint16_t vlan_pvid
Definition: options.h:714
options::resolve_retry_seconds
int resolve_retry_seconds
Definition: options.h:365
rol_check_alloc
void rol_check_alloc(struct options *options)
Definition: options.c:1714
connection_entry::http_proxy_options
struct http_proxy_options * http_proxy_options
Definition: options.h:120
options_string_extract_option
char * options_string_extract_option(const char *options_string, const char *opt_name, struct gc_arena *gc)
Given an OpenVPN options string, extract the value of an option.
Definition: options.c:4638
options::ca_file
const char * ca_file
Definition: options.h:594
env_set
Definition: env_set.h:42
options::server_bridge_netmask
in_addr_t server_bridge_netmask
Definition: options.h:483
options::config
const char * config
Definition: options.h:255
options::plugin_list
struct plugin_option_list * plugin_list
Definition: options.h:462
options::priv_key_file_inline
bool priv_key_file_inline
Definition: options.h:604
comp.h
dco_enabled
static bool dco_enabled(const struct options *o)
Returns whether the current configuration has dco enabled.
Definition: options.h:930
connection_entry::flags
unsigned int flags
Definition: options.h:159
common.h
init_options
void init_options(struct options *o, const bool init_gc)
Definition: options.c:805
options::connect_retry_max
int connect_retry_max
Definition: options.h:287
options::tls_auth_file_inline
bool tls_auth_file_inline
Definition: options.h:664
options::management_log_history_cache
int management_log_history_cache
Definition: options.h:449
options::daemon
bool daemon
Definition: options.h:389
connection_entry::socks_proxy_authfile
const char * socks_proxy_authfile
Definition: options.h:123
options_pre_connect::routes_defined
bool routes_defined
Definition: options.h:68
VLAN_ALL
@ VLAN_ALL
Definition: options.h:222
options::ifconfig_pool_end
in_addr_t ifconfig_pool_end
Definition: options.h:490
options::tls_groups
const char * tls_groups
Definition: options.h:609
basic.h
options::gc_owned
bool gc_owned
Definition: options.h:252
options::rcvbuf
int rcvbuf
Definition: options.h:414
options::remap_sigusr1
int remap_sigusr1
Definition: options.h:391
options::exit_event_initial_state
bool exit_event_initial_state
Definition: options.h:694
options_string_import
void options_string_import(struct options *options, const char *config, const int msglevel, const unsigned int permission_mask, unsigned int *option_types_found, struct env_set *es)
Definition: options.c:5535
pre_connect_restore
void pre_connect_restore(struct options *o, struct gc_arena *gc)
Definition: options.c:3299
options_pre_connect::client_nat_defined
bool client_nat_defined
Definition: options.h:77
options::peer_id
uint32_t peer_id
Definition: options.h:702
options_pre_connect
Definition: options.h:63
SHA256_DIGEST_LENGTH
#define SHA256_DIGEST_LENGTH
Definition: crypto_mbedtls.h:79
options::ifconfig_pool_defined
bool ifconfig_pool_defined
Definition: options.h:488
options::advance_next_remote
bool advance_next_remote
Definition: options.h:296
options_postprocess_pull
bool options_postprocess_pull(struct options *o, struct env_set *es)
Definition: options.c:4182
apply_push_options
bool apply_push_options(struct options *options, struct buffer *buf, unsigned int permission_mask, unsigned int *option_types_found, struct env_set *es)
Definition: options.c:5485
connection_entry::remote_float
bool remote_float
Definition: options.h:113
connection_entry::remote
const char * remote
Definition: options.h:112
options::machine_readable_output
bool machine_readable_output
Definition: options.h:395
options::tls_crypt_v2_verify_script
const char * tls_crypt_v2_verify_script
Definition: options.h:677
options::key_pass_file
const char * key_pass_file
Definition: options.h:275
tun_driver_type
tun_driver_type
Definition: tun.h:45
iroute_ipv6
Definition: route.h:247
connection_entry::tun_mtu_extra_defined
bool tun_mtu_extra_defined
Definition: options.h:131
options::ns_cert_type
int ns_cert_type
Definition: options.h:619
print_topology
const char * print_topology(const int topology)
Definition: options.c:4727
options::packet_id_file
const char * packet_id_file
Definition: options.h:585
remote_entry::proto
int proto
Definition: options.h:183
options::push_ifconfig_remote_netmask
in_addr_t push_ifconfig_remote_netmask
Definition: options.h:515
dns_options
Definition: dns.h:70
options::connection_list
struct connection_list * connection_list
Definition: options.h:289
options::cf_per
int cf_per
Definition: options.h:530
options::ifconfig_remote_netmask
const char * ifconfig_remote_netmask
Definition: options.h:322
options::routes
struct route_option_list * routes
Definition: options.h:434
options::chroot_dir
const char * chroot_dir
Definition: options.h:377
options::down_pre
bool down_pre
Definition: options.h:386
tuntap
Definition: tun.h:180
local_entry::local
const char * local
Definition: options.h:99
socket.h
options::ifconfig_ipv6_pool_netbits
int ifconfig_ipv6_pool_netbits
Definition: options.h:497
options::mark
int mark
Definition: options.h:418
options::max_routes_per_client
int max_routes_per_client
Definition: options.h:536
options::cryptoapi_cert
const char * cryptoapi_cert
Definition: options.h:639
options::server_bridge_pool_end
in_addr_t server_bridge_pool_end
Definition: options.h:485
options::sockflags
unsigned int sockflags
Definition: options.h:422
options::username
const char * username
Definition: options.h:375
connection_entry::mssfix_default
bool mssfix_default
Definition: options.h:143
options::ifconfig_pool_start
in_addr_t ifconfig_pool_start
Definition: options.h:489
pre_pull_default
void pre_pull_default(struct options *o)
http_proxy_options
Definition: proxy.h:44
notnull
void notnull(const char *arg, const char *description)
Definition: options.c:4902
options::extra_certs_file
const char * extra_certs_file
Definition: options.h:601
connection_entry::bind_ipv6_only
bool bind_ipv6_only
Definition: options.h:115
connection_entry::fragment
int fragment
Definition: options.h:139
options::up_restart
bool up_restart
Definition: options.h:388
route_ipv6_option_list
Definition: route.h:106
options::ifconfig_pool_persist_filename
const char * ifconfig_pool_persist_filename
Definition: options.h:492
has_tcp_in_local_list
bool has_tcp_in_local_list(const struct options *options)
Definition: options.c:9582
connection_entry::tls_mtu
int tls_mtu
Definition: options.h:134
options::auth_user_pass_verify_script_via_file
bool auth_user_pass_verify_script_via_file
Definition: options.h:541
options_detach
void options_detach(struct options *o)
Definition: options.c:1705
options::transition_window
int transition_window
Definition: options.h:660
connection_entry::proto
int proto
Definition: options.h:107
options::mute_replay_warnings
bool mute_replay_warnings
Definition: options.h:582
options::ifconfig_ipv6_pool_base
struct in6_addr ifconfig_ipv6_pool_base
Definition: options.h:496
options::auth_token_generate
bool auth_token_generate
Definition: options.h:542
options::ifconfig_ipv6_local
const char * ifconfig_ipv6_local
Definition: options.h:323
genkey_type
genkey_type
Definition: options.h:233
options::engine
const char * engine
Definition: options.h:580
options::real_hash_size
int real_hash_size
Definition: options.h:499
options::priv_key_file
const char * priv_key_file
Definition: options.h:603
options::client_disconnect_script
const char * client_disconnect_script
Definition: options.h:502
remote_entry
Definition: options.h:179
options::push_option_types_found
unsigned int push_option_types_found
Definition: options.h:558
options::stale_routes_ageing_time
int stale_routes_ageing_time
Definition: options.h:538
options::show_net_up
bool show_net_up
Definition: options.h:695
auth_retry_set
bool auth_retry_set(const int msglevel, const char *option)
Definition: options.c:4761
options::tmp_dir
const char * tmp_dir
Definition: options.h:466
options::cf_max
int cf_max
Definition: options.h:529
options::crl_file
const char * crl_file
Definition: options.h:616
options_string
char * options_string(const struct options *o, const struct frame *frame, struct tuntap *tt, openvpn_net_ctx_t *ctx, bool remote, struct gc_arena *gc)
Definition: options.c:4240
options::iroutes_ipv6
struct iroute_ipv6 * iroutes_ipv6
Definition: options.h:512
options_pre_connect::authname
const char * authname
Definition: options.h:83
remote_list::len
int len
Definition: options.h:206
options::route_delay_window
int route_delay_window
Definition: options.h:432
options_cmp_equal_safe
bool options_cmp_equal_safe(char *actual, const char *expected, size_t actual_n)
Definition: options.c:4601
options::occ
bool occ
Definition: options.h:443
options::persist_mode
int persist_mode
Definition: options.h:273
options::remote_list
struct remote_list * remote_list
Definition: options.h:291
dns.h
options::pull_filter_list
struct pull_filter_list * pull_filter_list
Definition: options.h:716
options::push_ifconfig_local_alias
in_addr_t push_ifconfig_local_alias
Definition: options.h:516
show_library_versions
void show_library_versions(const unsigned int flags)
Definition: options.c:4865
connection_entry::af
sa_family_t af
Definition: options.h:108
options::push_ifconfig_constraint_network
in_addr_t push_ifconfig_constraint_network
Definition: options.h:518
options::route_script
const char * route_script
Definition: options.h:425
pushlist.h
options::renegotiate_bytes
int64_t renegotiate_bytes
Definition: options.h:645
options::vlan_accept
enum vlan_acceptable_frames vlan_accept
Definition: options.h:713
options::route_delay
int route_delay
Definition: options.h:431
options::ifconfig_local
const char * ifconfig_local
Definition: options.h:321
connection_entry::tun_mtu
int tun_mtu
Definition: options.h:125
options::push_ifconfig_local
in_addr_t push_ifconfig_local
Definition: options.h:514
options::user_script_used
bool user_script_used
Definition: options.h:385
options::learn_address_script
const char * learn_address_script
Definition: options.h:503
connection_entry::tun_mtu_max
int tun_mtu_max
Definition: options.h:127
options::ping_rec_timeout_action
int ping_rec_timeout_action
Definition: options.h:355
options::bind_dev
char * bind_dev
Definition: options.h:419
options::mtu_test
bool mtu_test
Definition: options.h:332
options::management_client_user
const char * management_client_user
Definition: options.h:453
options::ciphername
const char * ciphername
Definition: options.h:573
options::inactivity_timeout
int inactivity_timeout
Definition: options.h:343
options::suppress_timestamps
bool suppress_timestamps
Definition: options.h:394
uninit_options
void uninit_options(struct options *o)
Definition: options.c:927
connection_entry::local_port
const char * local_port
Definition: options.h:109
options::dev_node
const char * dev_node
Definition: options.h:318
options::server_backoff_time
int server_backoff_time
Definition: options.h:304
pkcs11_id_management
static bool pkcs11_id_management
Definition: test_pkcs11.c:136
options::auth_user_pass_verify_script
const char * auth_user_pass_verify_script
Definition: options.h:540
options::tls_crypt_v2_metadata
const char * tls_crypt_v2_metadata
Definition: options.h:675
options::ifconfig_pool_persist_refresh_freq
int ifconfig_pool_persist_refresh_freq
Definition: options.h:493
options_pre_connect::ping_rec_timeout
int ping_rec_timeout
Definition: options.h:86
remote_list
Definition: options.h:203
options::ifconfig_ipv6_remote
const char * ifconfig_ipv6_remote
Definition: options.h:325
crypto_backend.h
options::lladdr
const char * lladdr
Definition: options.h:319
options::server_bridge_defined
bool server_bridge_defined
Definition: options.h:481
x509_track
Definition: ssl_verify.h:228
remote_list::capacity
int capacity
Definition: options.h:205
CONNECTION_LIST_SIZE
#define CONNECTION_LIST_SIZE
Definition: options.h:187
options::ca_file_inline
bool ca_file_inline
Definition: options.h:595
options::management_user_pass
const char * management_user_pass
Definition: options.h:448
options::push_ifconfig_constraint_netmask
in_addr_t push_ifconfig_constraint_netmask
Definition: options.h:519
options::remote_cert_eku
const char * remote_cert_eku
Definition: options.h:621
options::pull
bool pull
Definition: options.h:556
push_list
Definition: pushlist.h:35
options_cmp_equal
bool options_cmp_equal(char *actual, const char *expected)
Definition: options.c:4459
show_windows_version
void show_windows_version(const unsigned int flags)
Definition: options.c:4846
gc
struct gc_arena gc
Definition: test_ssl.c:155
options::route_default_gateway
const char * route_default_gateway
Definition: options.h:427
local_entry::proto
int proto
Definition: options.h:101