1 /* strongSwan IPsec config file parser
2 * Copyright (C) 2001-2002 Mathieu Lafon - Arkoon Network Security
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * RCSID $Id: confread.h,v 1.23 2006/04/17 10:32:36 as Exp $
17 #ifndef _IPSEC_CONFREAD_H_
18 #define _IPSEC_CONFREAD_H_
22 #include "../pluto/constants.h"
26 #include "interfaces.h"
49 typedef struct starter_end starter_end_t
;
64 bool has_client_wildcard
;
65 bool has_port_wildcard
;
69 certpolicy_t sendcert
;
78 typedef struct also also_t
;
86 typedef struct starter_conn starter_conn_t
;
95 starter_state_t state
;
97 keyexchange_t keyexchange
;
100 time_t sa_ike_life_seconds
;
101 time_t sa_ipsec_life_seconds
;
102 time_t sa_rekey_margin
;
103 unsigned long sa_keying_tries
;
104 unsigned long sa_rekey_fuzz
;
105 sa_family_t addr_family
;
106 sa_family_t tunnel_addr_family
;
108 starter_end_t left
, right
;
118 dpd_action_t dpd_action
;
121 starter_conn_t
*next
;
124 typedef struct starter_ca starter_ca_t
;
133 starter_state_t state
;
148 typedef struct starter_config starter_config_t
;
150 struct starter_config
{
158 /* pluto/charon keywords */
165 u_int crlcheckinterval
;
167 bool strictcrlpolicy
;
171 char *virtual_private
;
174 bool pkcs11keepstate
;
184 /* information about the default route */
185 defaultroute_t defaultroute
;
187 /* number of encountered parsing errors */
190 /* do we parse also statements */
194 starter_ca_t ca_default
;
196 /* connections list (without %default) */
197 starter_ca_t
*ca_first
, *ca_last
;
200 starter_conn_t conn_default
;
202 /* connections list (without %default) */
203 starter_conn_t
*conn_first
, *conn_last
;
206 extern starter_config_t
*confread_load(const char *file
);
207 extern void confread_free(starter_config_t
*cfg
);
209 #endif /* _IPSEC_CONFREAD_H_ */