]> git.ipfire.org Git - thirdparty/dhcp.git/blame - includes/site.h
[master] Update client code to RFC7550
[thirdparty/dhcp.git] / includes / site.h
CommitLineData
89eb0af4
TL
1/* Site-specific definitions.
2
3 For supported systems, you shouldn't need to make any changes here.
4 However, you may want to, in order to deal with site-specific
5 differences. */
6
7/* Add any site-specific definitions and inclusions here... */
8
9/* #include <site-foo-bar.h> */
10/* #define SITE_FOOBAR */
11
12/* Define this if you don't want dhcpd to run as a daemon and do want
13 to see all its output printed to stdout instead of being logged via
14 syslog(). This also makes dhcpd use the dhcpd.conf in its working
15 directory and write the dhcpd.leases file there. */
16
17/* #define DEBUG */
18
19/* Define this to see what the parser is parsing. You probably don't
20 want to see this. */
21
22/* #define DEBUG_TOKENS */
23
24/* Define this to see dumps of incoming and outgoing packets. This
25 slows things down quite a bit... */
26
27/* #define DEBUG_PACKET */
28
dac426fa 29/* Define this if you want to see dumps of expression evaluation. */
89eb0af4 30
dac426fa
TL
31/* #define DEBUG_EXPRESSIONS */
32
33/* Define this if you want to see dumps of find_lease() in action. */
34
98200ed9 35/* #define DEBUG_FIND_LEASE */
dac426fa
TL
36
37/* Define this if you want to see dumps of parsed expressions. */
38
39/* #define DEBUG_EXPRESSION_PARSE */
89eb0af4 40
b6cbc3fe
TL
41/* Define this if you want to watch the class matching process. */
42
43/* #define DEBUG_CLASS_MATCHING */
44
5092dd06
TL
45/* Define this if you want to track memory usage for the purpose of
46 noticing memory leaks quickly. */
47
9da31b16 48/* #define DEBUG_MEMORY_LEAKAGE */
95fd7038 49/* #define DEBUG_MEMORY_LEAKAGE_ON_EXIT */
5092dd06
TL
50
51/* Define this if you want exhaustive (and very slow) checking of the
52 malloc pool for corruption. */
53
0a1f401d 54/* #define DEBUG_MALLOC_POOL */
5092dd06 55
9c1a8943
TL
56/* Define this if you want to see a message every time a lease's state
57 changes. */
58/* #define DEBUG_LEASE_STATE_TRANSITIONS */
59
5092dd06
TL
60/* Define this if you want to maintain a history of the last N operations
61 that changed reference counts on objects. This can be used to debug
62 cases where an object is dereferenced too often, or not often enough. */
63
64928ad0 64/* #define DEBUG_RC_HISTORY */
5092dd06 65
88c32c8c
TL
66/* Define this if you want to see the history every cycle. */
67
68/* #define DEBUG_RC_HISTORY_EXHAUSTIVELY */
8c8e27c5 69
5092dd06
TL
70/* This is the number of history entries to maintain - by default, 256. */
71
82b2e770 72/* #define RC_HISTORY_MAX 10240 */
5092dd06 73
ea72047e
TL
74/* Define this if you want dhcpd to dump core when a non-fatal memory
75 allocation error is detected (i.e., something that would cause a
76 memory leak rather than a memory smash). */
77
0a1f401d 78/* #define POINTER_DEBUG */
ea72047e 79
03f54ca8
TL
80/* Define this if you want debugging output for DHCP failover protocol
81 messages. */
82
cf06713c 83/* #define DEBUG_FAILOVER_MESSAGES */
03f54ca8 84
1387545f
DH
85/* Define this to include contact messages in failover message debugging.
86 The contact messages are sent once per second, so this can generate a
87 lot of log entries. */
88
89/* #define DEBUG_FAILOVER_CONTACT_MESSAGES */
90
03f54ca8 91/* Define this if you want debugging output for DHCP failover protocol
1387545f 92 event timeout timing. */
03f54ca8 93
561f93ba 94/* #define DEBUG_FAILOVER_TIMING */
03f54ca8 95
1387545f
DH
96/* Define this if you want to include contact message timing, which is
97 performed once per second and can generate a lot of log entries. */
98
99/* #define DEBUG_FAILOVER_CONTACT_TIMING */
100
98311e4b
DH
101/* Define this if you want all leases written to the lease file, even if
102 they are free leases that have never been used. */
103
104/* #define DEBUG_DUMP_ALL_LEASES */
105
590298e7
SR
106/* Define this if you want to see the requests and replies between the
107 DHCP code and the DNS library code. */
108
109/* #define DEBUG_DNS_UPDATES */
110
4d079f0e
SR
111/* Define this if you want to debug the host part of the inform processing */
112/* #define DEBUG_INFORM_HOST */
113
3933e2aa
SR
114/* Define this if you want to debug the binary leases (lease_chain) code */
115/* #define DEBUG_BINARY_LEASES */
116
03f54ca8
TL
117/* Define this if you want DHCP failover protocol support in the DHCP
118 server. */
119
66cebfcb 120/* #define FAILOVER_PROTOCOL */
03f54ca8 121
64928ad0
TL
122/* Define this if you want DNS update functionality to be available. */
123
124#define NSUPDATE
125
e54ff84f
SR
126/* Define this if you want to enable the DHCP server attempting to
127 find a nameserver to use for DDNS updates. */
128#define DNS_ZONE_LOOKUP
129
89eb0af4
TL
130/* Define this if you want the dhcpd.pid file to go somewhere other than
131 the default (which varies from system to system, but is usually either
132 /etc or /var/run. */
133
134/* #define _PATH_DHCPD_PID "/var/run/dhcpd.pid" */
135
136/* Define this if you want the dhcpd.leases file (the dynamic lease database)
137 to go somewhere other than the default location, which is normally
138 /etc/dhcpd.leases. */
139
140/* #define _PATH_DHCPD_DB "/etc/dhcpd.leases" */
141
142/* Define this if you want the dhcpd.conf file to go somewhere other than
143 the default location. By default, it goes in /etc/dhcpd.conf. */
144
145/* #define _PATH_DHCPD_CONF "/etc/dhcpd.conf" */
146
147/* Network API definitions. You do not need to choose one of these - if
148 you don't choose, one will be chosen for you in your system's config
57f8192e 149 header. DON'T MESS WITH THIS UNLESS YOU KNOW WHAT YOU'RE DOING!!! */
89eb0af4 150
a57df74a 151/* Define USE_SOCKETS to use the standard BSD socket API.
89eb0af4
TL
152
153 On many systems, the BSD socket API does not provide the ability to
154 send packets to the 255.255.255.255 broadcast address, which can
155 prevent some clients (e.g., Win95) from seeing replies. This is
156 not a problem on Solaris.
157
158 In addition, the BSD socket API will not work when more than one
159 network interface is configured on the server.
160
161 However, the BSD socket API is about as efficient as you can get, so if
162 the aforementioned problems do not matter to you, or if no other
163 API is supported for your system, you may want to go with it. */
164
00a92910 165/* #define USE_SOCKETS */
89eb0af4
TL
166
167/* Define this to use the Sun Streams NIT API.
168
169 The Sun Streams NIT API is only supported on SunOS 4.x releases. */
170
171/* #define USE_NIT */
172
173/* Define this to use the Berkeley Packet Filter API.
174
175 The BPF API is available on all 4.4-BSD derivatives, including
176 NetBSD, FreeBSD and BSDI's BSD/OS. It's also available on
177 DEC Alpha OSF/1 in a compatibility mode supported by the Alpha OSF/1
178 packetfilter interface. */
179
180/* #define USE_BPF */
181
182/* Define this to use the raw socket API.
183
184 The raw socket API is provided on many BSD derivatives, and provides
185 a way to send out raw IP packets. It is only supported for sending
186 packets - packets must be received with the regular socket API.
187 This code is experimental - I've never gotten it to actually transmit
188 a packet to the 255.255.255.255 broadcast address - so use it at your
189 own risk. */
190
191/* #define USE_RAW_SOCKETS */
7acd8753
FD
192
193/* Define this to keep the old program name (e.g., "dhcpd" for
194 the DHCP server) in place of the (base) name the program was
195 invoked with. */
196
197/* #define OLD_LOG_NAME */
43a18457
TL
198
199/* Define this to change the logging facility used by dhcpd. */
200
201/* #define DHCPD_LOG_FACILITY LOG_DAEMON */
f0efccee 202
b543fea9
DH
203
204/* Define this if you want to be able to execute external commands
205 during conditional evaluation. */
206
66cebfcb 207/* #define ENABLE_EXECUTE */
b543fea9 208
f0efccee
TL
209/* Define this if you aren't debugging and you want to save memory
210 (potentially a _lot_ of memory) by allocating leases in chunks rather
211 than one at a time. */
212
213#define COMPACT_LEASES
82b2e770
TL
214
215/* Define this if you want to be able to save and playback server operational
216 traces. */
217
66cebfcb 218/* #define TRACING */
2b58b865
SR
219
220/* Define this if you want the server to use the previous behavior
221 when determining the DDNS TTL. If the user has specified a ddns-ttl
222 option that is used to detemine the ttl. (If the user specifies
223 an option that references the lease structure it is only usable
224 for v4. In that case v6 will use the default.) Otherwise when
225 defined the defaults are: v4 - 1/2 the lease time,
226 v6 - DEFAULT_DDNS_TTL. When undefined the defaults are 1/2 the
227 (preferred) lease time for both but with a cap on the maximum. */
228
229/* #define USE_OLD_DDNS_TTL */
230
fb30f3fc
SR
231/* Define this if you want a DHCPv6 server to send replies to the
232 source port of the message it received. This is useful for testing
233 but is only included for backwards compatibility. */
234/* #define REPLY_TO_SOURCE_PORT */
d15aa964 235
beaed73f
SR
236/* Define this if you want to enable strict checks in DNS Updates mechanism.
237 Do not enable this unless are DHCP developer. */
238/* #define DNS_UPDATES_MEMORY_CHECKS */
239
d15aa964
TM
240/* Define this if you want to allow domain list in domain-name option.
241 RFC2132 does not allow that behavior, but it is somewhat used due
242 to historic reasons. Note that it may be removed some time in the
243 future. */
244
245#define ACCEPT_LIST_IN_DOMAIN_NAME
d19fa5a1 246
d56788df
SR
247/* In previous versions of the code when the server generates a NAK
248 it doesn't attempt to determine if the configuration included a
249 server ID for that client. Defining this option causes the server
250 to make a modest effort to determine the server id when building
251 a NAK as a response. This effort will only check the first subnet
252 and pool associated with a shared subnet and will not check for
253 host declarations. With some configurations the server id
254 computed for a NAK may not match that computed for an ACK. */
255
256#define SERVER_ID_FOR_NAK
f8380d3f 257
7116a34f
TM
258/* NOTE: SERVER_ID_CHECK switch has been removed. Enabling server id
259 * checking is now done via the server-id-check statement. Please refer
260 * to the dhcpd manpage (server/dhcpd.conf.5) */
d7d9c0c7
SR
261
262/* Include code to do a slow transition of DDNS records
263 from the interim to the standard version, or backwards.
264 The normal code will handle removing an old style record
265 when the name on a lease is being changed. This adds code
266 to handle the case where the name isn't being changed but
267 the old record should be removed to allow a new record to
268 be added. This is the slow transition as leases are only
269 updated as a client touches them. A fast transition would
270 entail updating all the records at once, probably at start
271 up. */
272#define DDNS_UPDATE_SLOW_TRANSITION
9279a3d7
SR
273
274/* Define the default prefix length passed from the client to
275 the script when modifying an IPv6 IA_NA or IA_TA address.
276 The two most useful values are 128 which is what the current
277 specifications call for or 64 which is what has been used in
278 the past. For most OSes 128 will indicate that the address
279 is a host address and doesn't include any on-link information.
280 64 indicates that the first 64 bits are the subnet or on-link
281 prefix. */
282#define DHCLIENT_DEFAULT_PREFIX_LEN 64
283
e9326fd0
SR
284/* Enable the gentle shutdown signal handling. Currently this
285 means that on SIGINT or SIGTERM a client will release its
286 address and a server in a failover pair will go through
287 partner down. Both of which can be undesireable in some
288 situations. We plan to revisit this feature and may
289 make non-backwards compatible changes including the
290 removal of this define. Use at your own risk. */
291/* #define ENABLE_GENTLE_SHUTDOWN */
292
1dceab6c
SR
293/* Include old error codes. This is provided in case you
294 are building an external program similar to omshell for
295 which you need the ISC_R_* error codes. You should switch
296 to DHCP_R_* error codes for those that have been defined
297 (see includes/omapip/result.h). The extra defines and
298 this option will be removed at some time. */
299/* #define INCLUDE_OLD_DHCP_ISC_ERROR_CODES */
300
c88dfebd
SR
301/* Use the older factors for scoring a lease in the v6 client code.
302 The new factors cause the client to choose more bindings (IAs)
303 over more addresse within a binding. Most uses will get a
304 single address in a single binding and only get an adverstise
305 from a single server and there won't be a difference. */
306/* #define USE_ORIGINAL_CLIENT_LEASE_WEIGHTS */
307
bc30c84e
SR
308/* Include definitions for various options. In general these
309 should be left as is, but if you have already defined one
310 of these and prefer your definition you can comment the
311 RFC define out to avoid conflicts */
ccc2a367 312#define RFC2937_OPTIONS
bc30c84e
SR
313#define RFC4776_OPTIONS
314#define RFC4833_OPTIONS
315#define RFC4994_OPTIONS
316#define RFC5192_OPTIONS
317#define RFC5223_OPTIONS
318#define RFC5417_OPTIONS
319#define RFC5460_OPTIONS
ccc2a367 320#define RFC5969_OPTIONS
bc30c84e
SR
321#define RFC5970_OPTIONS
322#define RFC5986_OPTIONS
323#define RFC6011_OPTIONS
324#define RFC6334_OPTIONS
325#define RFC6440_OPTIONS
326#define RFC6731_OPTIONS
327#define RFC6939_OPTIONS
328#define RFC6977_OPTIONS
329#define RFC7083_OPTIONS
330