Update acconfig.h to include values for gettext inclusion.
[tinc] / src / conf.h
1 /*
2     conf.h -- header for conf.c
3     Copyright (C) 1998,1999,2000 Ivo Timmermans <zarq@iname.com>
4
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, write to the Free Software
17     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19
20 #ifndef __TINC_CONF_H__
21 #define __TINC_CONF_H__
22
23 typedef struct ip_mask_t {
24   unsigned long ip;
25   unsigned long mask;
26 } ip_mask_t;
27
28 typedef union data_t {
29   unsigned long val;
30   void *ptr;
31   ip_mask_t *ip;
32 } data_t;
33
34 typedef enum which_t {
35   passphrasesdir = 1,
36   upstreamip,
37   upstreamport,
38   listenport,
39   myvpnip,
40   tapdevice,
41   allowconnect,
42   pingtimeout,
43   keyexpire,
44   vpnmask
45 } which_t;
46
47 typedef struct config_t {
48   struct config_t *next;
49   which_t which;
50   data_t data;
51 } config_t;
52
53 enum {
54   stupid_false = 1,
55   stupid_true
56 };
57
58 enum {
59   TYPE_NAME = 1,
60   TYPE_INT,
61   TYPE_IP,
62   TYPE_BOOL
63 };
64
65 extern config_t *config;
66 extern int debug_lvl;
67 extern int timeout;
68
69 extern config_t *add_config_val(config_t **, int, char *);
70 extern int read_config_file(const char *);
71 extern const config_t *get_config_val(which_t type);
72
73 #endif /* __TINC_CONF_H__ */