]> git.ipfire.org Git - thirdparty/dhcp.git/blame - includes/dhctoken.h
Add vendor_space_name to client_config. Lots of prototypes.
[thirdparty/dhcp.git] / includes / dhctoken.h
CommitLineData
d7837182
TL
1/* dhctoken.h
2
3 Tokens for config file lexer and parser. */
4
5/*
f39b6e00 6 * Copyright (c) 1996-1999 Internet Software Consortium.
49733f31 7 * All rights reserved.
d7837182 8 *
49733f31
TL
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
d7837182 12 *
49733f31
TL
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
18 * 3. Neither the name of The Internet Software Consortium nor the names
19 * of its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
d7837182 21 *
49733f31
TL
22 * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
23 * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
24 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 * DISCLAIMED. IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
30 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
33 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * This software has been written for the Internet Software Consortium
37 * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
38 * To learn more about the Internet Software Consortium, see
39 * ``http://www.isc.org/''. To learn more about Vixie Enterprises,
40 * see ``http://www.vix.com''. To learn more about Nominum, Inc., see
41 * ``http://www.nominum.com''.
d7837182
TL
42 */
43
983ea35c
TL
44enum dhcp_token {
45 SEMI = ';',
46 DOT = '.',
47 COLON = ':',
48 COMMA = ',',
49 SLASH = '/',
50 LBRACE = '{',
51 RBRACE = '}',
52 LPAREN = '(',
53 RPAREN = ')',
54 EQUAL = '=',
2b965a44 55 BANG = '!',
3bbe2135 56 PERCENT = '%',
811e0e67
TL
57 PLUS = '+',
58 MINUS = '-',
59 ASTERISK = '*',
3c98e80b
DN
60 AMPERSAND = '&',
61 PIPE = '|',
62 CARET = '^',
d7837182 63
983ea35c
TL
64 HOST = 256,
65 FIRST_TOKEN = HOST,
66 HARDWARE = 257,
67 FILENAME = 258,
68 FIXED_ADDR = 259,
69 OPTION = 260,
70 ETHERNET = 261,
71 STRING = 262,
72 NUMBER = 263,
73 NUMBER_OR_NAME = 264,
74 NAME = 265,
75 TIMESTAMP = 266,
76 STARTS = 267,
77 ENDS = 268,
78 UID = 269,
79 CLASS = 270,
80 LEASE = 271,
81 RANGE = 272,
82 PACKET = 273,
83 CIADDR = 274,
84 YIADDR = 275,
85 SIADDR = 276,
86 GIADDR = 277,
87 SUBNET = 278,
88 NETMASK = 279,
89 DEFAULT_LEASE_TIME = 280,
90 MAX_LEASE_TIME = 281,
91 VENDOR_CLASS = 282,
92 USER_CLASS = 283,
93 SHARED_NETWORK = 284,
94 SERVER_NAME = 285,
95 DYNAMIC_BOOTP = 286,
96 SERVER_IDENTIFIER = 287,
97 DYNAMIC_BOOTP_LEASE_CUTOFF = 288,
98 DYNAMIC_BOOTP_LEASE_LENGTH = 289,
99 BOOT_UNKNOWN_CLIENTS = 290,
100 NEXT_SERVER = 291,
101 TOKEN_RING = 292,
102 GROUP = 293,
103 ONE_LEASE_PER_CLIENT = 294,
104 GET_LEASE_HOSTNAMES = 295,
105 USE_HOST_DECL_NAMES = 296,
106 SEND = 297,
107 CLIENT_IDENTIFIER = 298,
108 REQUEST = 299,
109 REQUIRE = 300,
110 TIMEOUT = 301,
111 RETRY = 302,
112 SELECT_TIMEOUT = 303,
113 SCRIPT = 304,
114 INTERFACE = 305,
115 RENEW = 306,
116 REBIND = 307,
117 EXPIRE = 308,
118 UNKNOWN_CLIENTS = 309,
119 ALLOW = 310,
983ea35c
TL
120 DENY = 312,
121 BOOTING = 313,
122 DEFAULT = 314,
123 MEDIA = 315,
124 MEDIUM = 316,
125 ALIAS = 317,
126 REBOOT = 318,
007e3ee4 127 TOKEN_ABANDONED = 319,
983ea35c
TL
128 BACKOFF_CUTOFF = 320,
129 INITIAL_INTERVAL = 321,
130 NAMESERVER = 322,
131 DOMAIN = 323,
132 SEARCH = 324,
133 SUPERSEDE = 325,
134 APPEND = 326,
135 PREPEND = 327,
136 HOSTNAME = 328,
137 CLIENT_HOSTNAME = 329,
138 REJECT = 330,
139 USE_LEASE_ADDR_FOR_DEFAULT_ROUTE = 331,
140 MIN_LEASE_TIME = 332,
141 MIN_SECS = 333,
142 AND = 334,
143 OR = 335,
983ea35c
TL
144 SUBSTRING = 337,
145 SUFFIX = 338,
146 CHECK = 339,
147 EXTRACT_INT = 340,
148 IF = 341,
8a04c615 149 TOKEN_ADD = 342,
983ea35c
TL
150 BREAK = 343,
151 ELSE = 344,
152 ELSIF = 345,
153 SUBCLASS = 346,
154 MATCH = 347,
155 SPAWN = 348,
156 WITH = 349,
157 EXISTS = 350,
f197003d
TL
158 POOL = 351,
159 UNKNOWN = 352,
160 CLIENTS = 353,
161 KNOWN = 354,
162 AUTHENTICATED = 355,
163 UNAUTHENTICATED = 356,
164 ALL = 357,
165 DYNAMIC = 358,
166 MEMBERS = 359,
167 OF = 360,
168 PSEUDO = 361,
00a7748f
TL
169 LIMIT = 362,
170 BILLING = 363,
c66b869e
TL
171 PEER = 364,
172 FAILOVER = 365,
173 MY = 366,
174 PARTNER = 367,
175 PRIMARY = 368,
176 SECONDARY = 369,
177 IDENTIFIER = 370,
178 PORT = 371,
179 MAX_TRANSMIT_IDLE = 372,
180 MAX_RESPONSE_DELAY = 373,
181 PARTNER_DOWN = 374,
182 NORMAL = 375,
183 COMMUNICATIONS_INTERRUPTED = 376,
184 POTENTIAL_CONFLICT = 377,
185 RECOVER = 378,
6b6126fb
TL
186 FDDI = 379,
187 AUTHORITATIVE = 380,
188 TOKEN_NOT = 381,
40d08f51
TL
189 AUTHENTICATION = 383,
190 IGNORE = 384,
191 ACCEPT = 385,
192 PREFER = 386,
193 DONT = 387,
1e382a09
TL
194 CODE = 388,
195 ARRAY = 389,
196 BOOLEAN = 390,
197 INTEGER = 391,
198 SIGNED = 392,
199 UNSIGNED = 393,
200 IP_ADDRESS = 394,
201 TEXT = 395,
202 STRING_TOKEN = 396,
6cad5838 203 SPACE = 397,
b7afba03 204 CONCAT = 398,
3cb23d09 205 ENCODE_INT = 399,
da38df14
TL
206 REVERSE = 402,
207 LEASED_ADDRESS = 403,
208 BINARY_TO_ASCII = 404,
d7d2cbe8 209 PICK = 405,
79a65726
TL
210 CONFIG_OPTION = 406,
211 HOST_DECL_NAME = 407,
212 ON = 408,
213 EXPIRY = 409,
214 RELEASE = 410,
215 COMMIT = 411,
069e9f4c
TL
216 DNS_UPDATE = 412,
217 LEASE_TIME = 413,
1c5d5731 218 STATIC = 414,
be1ee858
TL
219 NEVER = 415,
220 INFINITE = 416,
007e3ee4 221 TOKEN_DELETED = 417,
846d7d54 222 UPDATED_DNS_RR = 418,
337b3e52 223 DNS_DELETE = 419,
3d201338 224 DUPLICATES = 420,
679c2655
TL
225 DECLINES = 421,
226 TSTP = 422,
227 TSFP = 423,
228 OWNER = 424,
229 IS = 425,
230 HBA = 426,
231 MAX_UNACKED_UPDATES = 427,
232 MCLT = 428,
233 SPLIT = 429,
234 AT = 430,
235 NO = 431,
375841eb
TL
236 TOKEN_DELETE = 432,
237 NS_UPDATE = 433,
238 UPDATE = 434,
239 SWITCH = 435,
240 CASE = 436,
241 NS_FORMERR = 437,
242 NS_NOERROR = 438,
243 NS_NOTAUTH = 439,
244 NS_NOTIMP = 440,
245 NS_NOTZONE = 441,
246 NS_NXDOMAIN = 442,
247 NS_NXRRSET = 443,
248 NS_REFUSED = 444,
249 NS_SERVFAIL = 445,
250 NS_YXDOMAIN = 446,
251 NS_YXRRSET = 447,
252 TOKEN_NULL = 448,
253 TOKEN_SET = 449,
254 DEFINED = 450,
255 UNSET = 451,
256 EVAL = 452,
257 LET = 453,
258 FUNCTION = 454,
259 DEFINE = 455,
260 ZONE = 456,
261 KEY = 457,
262 SECRET = 458,
34bc835a
TL
263 ALGORITHM = 459,
264 LOAD = 460,
265 BALANCE = 461,
266 TOKEN_MAX = 462,
267 SECONDS = 463,
822e866a 268 ADDRESS = 464,
5965f2a0 269 RESOLUTION_INTERRUPTED = 465,
822e866a 270 STATE = 466,
8c8e27c5 271 UNKNOWN_STATE = 567,
20916cae 272 CLTT = 568,
007e3ee4
TL
273 INCLUDE = 569,
274 BINDING = 570,
275 TOKEN_FREE = 571,
276 TOKEN_ACTIVE = 572,
277 TOKEN_EXPIRED = 573,
278 TOKEN_RELEASED = 574,
279 TOKEN_RESET = 575,
280 TOKEN_BACKUP = 576,
281 TOKEN_RESERVED = 577,
282 TOKEN_BOOTP = 578,
283 TOKEN_NEXT = 579,
e7a9c293
DN
284 OMAPI = 580,
285 LOG = 581,
286 FATAL = 582,
287 ERROR = 583,
288 TOKEN_DEBUG = 584,
1b234d44 289 INFO = 585,
b4095545
TL
290 RETURN = 586,
291 PAUSED = 587,
292 RECOVER_DONE = 588,
293 SHUTDOWN = 589,
294 STARTUP = 590
983ea35c 295};
d7837182
TL
296
297#define is_identifier(x) ((x) >= FIRST_TOKEN && \
d7837182 298 (x) != STRING && \
f4e348de
TL
299 (x) != NUMBER && \
300 (x) != EOF)