]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/filed/filed_conf.h
- Integrated TLS network encryption
[bacula/bacula] / bacula / src / filed / filed_conf.h
1 /*
2  * Bacula File Daemon specific configuration
3  *
4  *     Kern Sibbald, Sep MM
5  *
6  *   Version $Id$
7  */
8 /*
9    Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
10
11    This program is free software; you can redistribute it and/or
12    modify it under the terms of the GNU General Public License as
13    published by the Free Software Foundation; either version 2 of
14    the License, or (at your option) any later version.
15
16    This program is distributed in the hope that it will be useful,
17    but WITHOUT ANY WARRANTY; without even the implied warranty of
18    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19    General Public License for more details.
20
21    You should have received a copy of the GNU General Public
22    License along with this program; if not, write to the Free
23    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
24    MA 02111-1307, USA.
25
26  */
27
28 /*
29  * Resource codes -- they must be sequential for indexing
30  */
31 #define R_FIRST                       1001
32
33 #define R_DIRECTOR                    1001
34 #define R_CLIENT                      1002
35 #define R_MSGS                        1003
36
37 #define R_LAST                        R_MSGS
38
39 /*
40  * Some resource attributes
41  */
42 #define R_NAME                        1020
43 #define R_ADDRESS                     1021
44 #define R_PASSWORD                    1022
45 #define R_TYPE                        1023
46
47
48 /* Definition of the contents of each Resource */
49 struct DIRRES {
50    RES   hdr;
51    char *password;                    /* Director password */
52    char *address;                     /* Director address or zero */
53    int monitor;                       /* Have only access to status and .status functions */
54 #ifdef HAVE_TLS
55    int tls_enable;                    /* Enable TLS */
56    int tls_require;                   /* Require TLS */
57    int tls_verify_peer;              /* TLS Verify Client Certificate */
58    char *tls_ca_certfile;             /* TLS CA Certificate File */
59    char *tls_ca_certdir;              /* TLS CA Certificate Directory */
60    char *tls_certfile;                /* TLS Server Certificate File */
61    char *tls_keyfile;                 /* TLS Server Key File */
62    char *tls_dhfile;                  /* TLS Diffie-Hellman Parameters */
63    alist *tls_allowed_cns;            /* TLS Allowed Clients */
64
65    TLS_CONTEXT *tls_ctx;              /* Shared TLS Context */
66 #endif /* HAVE_TLS */
67 };
68
69 struct CLIENT {
70    RES   hdr;
71    dlist *FDaddrs;
72    char *working_directory;
73    char *pid_directory;
74    char *subsys_directory;
75    char *scripts_directory;
76    MSGS *messages;                    /* daemon message handler */
77    int MaxConcurrentJobs;
78    utime_t heartbeat_interval;        /* Interval to send heartbeats to Dir */
79    utime_t SDConnectTimeout;          /* timeout in seconds */
80    uint32_t max_network_buffer_size;  /* max network buf size */
81 #ifdef HAVE_TLS
82    int tls_enable;                    /* Enable TLS */
83    int tls_require;                   /* Require TLS */
84    char *tls_ca_certfile;             /* TLS CA Certificate File */
85    char *tls_ca_certdir;              /* TLS CA Certificate Directory */
86    char *tls_certfile;                /* TLS Client Certificate File */
87    char *tls_keyfile;                 /* TLS Client Key File */
88
89    TLS_CONTEXT *tls_ctx;              /* Shared TLS Context */
90 #endif /* HAVE_TLS */
91 };
92
93
94
95 /* Define the Union of all the above
96  * resource structure definitions.
97  */
98 union URES {
99    DIRRES res_dir;
100    CLIENT res_client;
101    MSGS   res_msgs;
102    RES    hdr;
103 };