etc/services - sync with NetBSD-8
[minix.git] / external / bsd / bind / dist / contrib / zkt-1.1.3 / zconf.h
blob47ce1952dd8abc5fd99f2c93f02e700585b25fc7
1 /* $NetBSD: zconf.h,v 1.1.1.1 2015/07/08 15:37:48 christos Exp $ */
3 /*****************************************************************
4 **
5 ** @(#) zconf.h
6 **
7 ** Copyright (c) Jan 2005, Jeroen Masar, Holger Zuleger.
8 ** All rights reserved.
9 **
10 ** This software is open source.
11 **
12 ** Redistribution and use in source and binary forms, with or without
13 ** modification, are permitted provided that the following conditions
14 ** are met:
15 **
16 ** Redistributions of source code must retain the above copyright notice,
17 ** this list of conditions and the following disclaimer.
18 **
19 ** Redistributions in binary form must reproduce the above copyright notice,
20 ** this list of conditions and the following disclaimer in the documentation
21 ** and/or other materials provided with the distribution.
22 **
23 ** Neither the name of Jeroen Masar and Holger Zuleger nor the
24 ** names of its contributors may be used to endorse or promote products
25 ** derived from this software without specific prior written permission.
26 **
27 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29 ** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30 ** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
31 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37 ** POSSIBILITY OF SUCH DAMAGE.
39 *****************************************************************/
40 #ifndef ZCONF_H
41 # define ZCONF_H
44 # define MINSEC 60L
45 # define HOURSEC (MINSEC * 60)
46 # define DAYSEC (HOURSEC * 24)
47 # define WEEKSEC (DAYSEC * 7)
48 # define YEARSEC (DAYSEC * 365)
49 # define DAY (1)
50 # define WEEK (DAY * 7)
51 # define MONTH (DAY * 30)
52 # define YEAR (DAY * 365)
54 # define SIG_VALID_DAYS (21) /* 3 Weeks */
55 # define SIG_VALIDITY (SIG_VALID_DAYS * DAYSEC)
56 # define MAX_TTL ( 8 * HOURSEC) /* default value of maximum ttl time */
57 # define KEY_TTL ( 4 * HOURSEC) /* default value of KEY TTL */
58 # define PROPTIME ( 5 * MINSEC) /* expected slave propagation time */
59 /* should be small if notify is used */
60 #if defined (DEF_TTL)
61 # define DEF_TTL (MAX_TTL/2) /* currently not used */
62 #endif
64 # define RESIGN_INT ((SIG_VALID_DAYS - (SIG_VALID_DAYS / 3)) * DAYSEC)
65 # define KSK_LIFETIME (2 * YEARSEC)
66 #if 1
67 # define ZSK_LIFETIME ((SIG_VALID_DAYS * 3) * DAYSEC) /* set to three times the sig validity */
68 #else
69 # define ZSK_LIFETIME (12 * WEEKSEC) /* set fixed to 3 month */
70 #endif
72 /* # define KSK_ALGO (DK_ALGO_RSASHA1) KSK_ALGO renamed to KEY_ALGO (v0.99) */
73 # define KEY_ALGO (DK_ALGO_RSASHA1) /* general KEY_ALGO used for both ksk and zsk */
74 # define ADDITIONAL_KEY_ALGO 0
75 # define KSK_BITS (1300)
76 # define KSK_RANDOM NULL
77 /* # define ZSK_ALGO (DK_ALGO_RSASHA1) ZSK_ALGO has to be the same as KSK, so this is no longer used (v0.99) */
78 # define ZSK_BITS (512)
79 # define ZSK_ALWAYS 0
80 # define ZSK_RANDOM "/dev/urandom"
81 # define NSEC3 0 /* by default nsec3 is off */
82 # define SALTLEN 24 /* salt length in bits (resolution is 4 bits)*/
84 #if 0
85 # define ZONEDIR "."
86 #else
87 # define ZONEDIR CONFIG_PATH
88 #endif
89 # define RECURSIVE 0
90 # define PRINTTIME 1
91 # define PRINTAGE 0
92 # define LJUST 0
93 # define LSCOLORTERM NULL /* or "" */
94 # define KEYSETDIR ".." /* keysets */
95 # define LOGFILE ""
96 # define LOGLEVEL "error"
97 # define LOGDOMAINDIR ""
98 # define SYSLOGFACILITY "none"
99 # define SYSLOGLEVEL "notice"
100 # define VERBOSELOG 0
101 # define ZONEFILE "zone.db"
102 # define DNSKEYFILE "dnskey.db"
103 # define LOOKASIDEDOMAIN "" /* "dlv.trusted-keys.de" */
104 # define SIG_RANDOM NULL /* "/dev/urandom" */
105 # define SIG_PSEUDO 0
106 # define SIG_GENDS 1
107 # define SIG_DNSKEY_KSK 0 /* Sign DNSKEY RR with KSK only */
108 # define SIG_PARAM ""
109 # define DEPENDFILES ""
110 # define DIST_CMD NULL /* default is to run "rndc reload" */
111 # define NAMED_CHROOT NULL /* default is none */
113 #ifndef CONFIG_PATH
114 # define CONFIG_PATH "/var/named/"
115 #endif
116 # define CONFIG_FILE CONFIG_PATH "dnssec.conf"
117 # define LOCALCONF_FILE "dnssec.conf"
119 /* external command execution path (should be set via config.h) */
120 #ifndef BIND_UTIL_PATH
121 # define BIND_UTIL_PATH "/usr/local/sbin/" /* beware of trailing '/' */
122 #endif
123 # define SIGNCMD BIND_UTIL_PATH "dnssec-signzone"
124 # define KEYGENCMD BIND_UTIL_PATH "dnssec-keygen"
125 # define RELOADCMD BIND_UTIL_PATH "rndc"
127 /* macros */
128 # define isflistdelim(c) ( (c) == ':' || (c) == ',' || isspace (c) )
130 typedef enum {
131 Unixtime = 1,
132 Incremental
133 } serial_form_t;
135 typedef enum {
136 NSEC3_OFF = 0,
137 NSEC3_ON,
138 NSEC3_OPTOUT
139 } nsec3_t;
141 typedef enum {
142 none = 0,
143 user,
144 local0, local1, local2, local3, local4, local5, local6, local7
145 } syslog_facility_t;
147 typedef struct zconf {
148 char *zonedir;
149 int recursive;
150 int printtime;
151 int printage;
152 int ljust;
153 char *colorterm;
154 long sigvalidity; /* should be less than expire time */
155 long max_ttl; /* should be set to the maximum used ttl in the zone */
156 long key_ttl;
157 long proptime; /* expected time offset for zone propagation */
158 #if defined (DEF_TTL)
159 long def_ttl; /* default ttl set in soa record */
160 #endif
161 serial_form_t serialform; /* format of serial no */
162 long resign; /* resign interval */
164 int k_algo;
165 int k2_algo;
166 long k_life;
167 int k_bits;
168 char *k_random;
169 long z_life;
170 /* int z_algo; no longer used; renamed to k2_algo (v0.99) */
171 int z_bits;
172 int z_always; /* always pre-publish zsk ? */
173 char *z_random;
174 nsec3_t nsec3; /* 0 == off; 1 == on; 2 == on with optout */
175 int saltbits;
177 char *view;
178 int noexec;
179 // char *errlog;
180 char *logfile;
181 char *loglevel;
182 char *logdomaindir;
183 char *syslogfacility;
184 char *sysloglevel;
185 int verboselog;
186 int verbosity;
187 char *keyfile;
188 char *zonefile;
189 char *keysetdir;
190 char *lookaside;
191 char *sig_random;
192 int sig_pseudo;
193 int sig_gends;
194 int sig_dnskeyksk;
195 char *sig_param;
196 char *dependfiles;
197 char *dist_cmd; /* cmd to run instead of "rndc reload" */
198 char *chroot_dir; /* chroot directory of named */
199 } zconf_t;
201 extern const char *timeint2str (unsigned long val);
202 extern zconf_t *loadconfig (const char *filename, zconf_t *z);
203 extern zconf_t *loadconfig_fromstr (const char *str, zconf_t *z);
204 extern zconf_t *dupconfig (const zconf_t *conf);
205 extern zconf_t *freeconfig (zconf_t *conf);
206 extern int setconfigpar (zconf_t *conf, char *entry, const void *pval);
207 extern int printconfig (const char *fname, const zconf_t *cp);
208 extern int printconfigdiff (const char *fname, const zconf_t *ref, const zconf_t *z);
209 extern int checkconfig (const zconf_t *z);
210 extern void setconfigversion (int version);
212 #endif