Always keep UDP mappings alive for nodes that also have a meta-connection.
[tinc] / src / tincctl.h
1 /*
2     tincctl.h -- header for tincctl.c.
3     Copyright (C) 2011-2013 Guus Sliepen <guus@tinc-vpn.org>
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 along
16     with this program; if not, write to the Free Software Foundation, Inc.,
17     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20 #ifndef __TINC_TINCCTL_H__
21 #define __TINC_TINCCTL_H__
22
23 extern bool tty;
24 extern char line[4096];
25 extern int fd;
26 extern char buffer[4096];
27 extern size_t blen;
28 extern bool confbasegiven;
29 extern char *tinc_conf;
30 extern char *hosts_dir;
31
32 #define VAR_SERVER 1    /* Should be in tinc.conf */
33 #define VAR_HOST 2      /* Can be in host config file */
34 #define VAR_MULTIPLE 4  /* Multiple statements allowed */
35 #define VAR_OBSOLETE 8  /* Should not be used anymore */
36 #define VAR_SAFE 16     /* Variable is safe when accepting invitations */
37
38 typedef struct {
39         const char *name;
40         int type;
41 } var_t;
42
43 extern const var_t variables[];
44
45 extern int rstrip(char *value);
46 extern char *get_my_name(bool verbose);
47 extern bool connect_tincd(bool verbose);
48 extern bool sendline(int fd, char *format, ...);
49 extern bool recvline(int fd, char *line, size_t len);
50 extern int check_port(char *name);
51 extern FILE *fopenmask(const char *filename, const char *mode, mode_t perms);
52
53 #endif
54