init.h
6fbf66fa
 /*
  *  OpenVPN -- An application to securely tunnel IP networks
  *             over a single TCP/UDP port, with support for SSL/TLS-based
  *             session authentication and key exchange,
  *             packet encryption, packet authentication, and
  *             packet compression.
  *
564a2109
  *  Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
6fbf66fa
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2
  *  as published by the Free Software Foundation.
  *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program (see the file COPYING included with this
  *  distribution); if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
 #ifndef INIT_H
 #define INIT_H
 
 #include "openvpn.h"
 
 /*
  * Baseline maximum number of events
  * to wait for.
  */
 #define BASE_N_EVENTS 4
 
 void context_clear (struct context *c);
 void context_clear_1 (struct context *c);
 void context_clear_2 (struct context *c);
 void context_init_1 (struct context *c);
 void context_clear_all_except_first_time (struct context *c);
 
 bool init_static (void);
 
 void uninit_static (void);
 
 #define IVM_LEVEL_1 (1<<0) 
 #define IVM_LEVEL_2 (1<<1)
 void init_verb_mute (struct context *c, unsigned int flags);
 
 void init_options_dev (struct options *options);
 
 bool print_openssl_info (const struct options *options);
 
 bool do_genkey (const struct options *options);
 
 bool do_persist_tuntap (const struct options *options);
 
 void pre_setup (const struct options *options);
 
 void init_instance_handle_signals (struct context *c, const struct env_set *env, const unsigned int flags);
 
 void init_instance (struct context *c, const struct env_set *env, const unsigned int flags);
 
 void do_route (const struct options *options,
 	       struct route_list *route_list,
512cda46
 	       struct route_ipv6_list *route_ipv6_list,
6fbf66fa
 	       const struct tuntap *tt,
 	       const struct plugin_list *plugins,
 	       struct env_set *es);
 
 void close_instance (struct context *c);
 
 bool do_test_crypto (const struct options *o);
 
 void context_gc_free (struct context *c);
 
 void do_up (struct context *c,
 	    bool pulled_options,
 	    unsigned int option_types_found);
 
3c7f2f55
 unsigned int pull_permission_mask (const struct context *c);
6fbf66fa
 
 const char *format_common_name (struct context *c, struct gc_arena *gc);
 
 void reset_coarse_timers (struct context *c);
 
 void do_deferred_options (struct context *c, const unsigned int found);
 
 void inherit_context_child (struct context *dest,
 			    const struct context *src);
 
 void inherit_context_top (struct context *dest,
 			  const struct context *src);
 
 #define CC_GC_FREE          (1<<0)
 #define CC_USR1_TO_HUP      (1<<1)
 #define CC_HARD_USR1_TO_HUP (1<<2)
79df31c8
 #define CC_NO_CLOSE         (1<<3)
 
6fbf66fa
 void close_context (struct context *c, int sig, unsigned int flags);
 
 struct context_buffers *init_context_buffers (const struct frame *frame);
 
 void free_context_buffers (struct context_buffers *b);
 
 #define ISC_ERRORS (1<<0)
 #define ISC_SERVER (1<<1)
 void initialization_sequence_completed (struct context *c, const unsigned int flags);
 
 #ifdef ENABLE_MANAGEMENT
 
 void init_management (struct context *c);
 bool open_management (struct context *c);
 void close_management (void);
 
 void management_show_net_callback (void *arg, const int msglevel);
 
 #endif
 
 void init_management_callback_p2p (struct context *c);
 void uninit_management_callback (void);
 
3c7f2f55
 #ifdef ENABLE_PLUGIN
e1791bb1
 void init_plugins (struct context *c);
 void open_plugins (struct context *c, const bool import_options, int init_point);
3c7f2f55
 #endif
 
6fbf66fa
 #endif