]> git.ipfire.org Git - thirdparty/dhcp.git/blame - includes/dhctoken.h
Revert last commit
[thirdparty/dhcp.git] / includes / dhctoken.h
CommitLineData
d7837182
TL
1/* dhctoken.h
2
3 Tokens for config file lexer and parser. */
4
5/*
7512d88b 6 * Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
98311e4b 7 * Copyright (c) 1996-2003 by Internet Software Consortium
d7837182 8 *
7512d88b
TM
9 * This Source Code Form is subject to the terms of the Mozilla Public
10 * License, v. 2.0. If a copy of the MPL was not distributed with this
11 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
d7837182 12 *
98311e4b
DH
13 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
14 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
16 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
18 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
19 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
d7837182 20 *
98311e4b
DH
21 * Internet Systems Consortium, Inc.
22 * 950 Charter Street
23 * Redwood City, CA 94063
24 * <info@isc.org>
2c85ac9b 25 * https://www.isc.org/
49733f31 26 *
d7837182
TL
27 */
28
d7d9c0c7
SR
29/*
30 * The following tokens have been deprecated and aren't in use anymore.
31 * They have been left in place to avoid disturbing the code.
32 * DNS_UPDATE, DNS_DELETE, NS_UPDATE, UPDATED_DNS_RR
33 */
983ea35c
TL
34enum dhcp_token {
35 SEMI = ';',
36 DOT = '.',
37 COLON = ':',
38 COMMA = ',',
39 SLASH = '/',
40 LBRACE = '{',
41 RBRACE = '}',
5fa58fdf
FD
42 LBRACKET = '[',
43 RBRACKET = ']',
983ea35c
TL
44 LPAREN = '(',
45 RPAREN = ')',
46 EQUAL = '=',
dd328225 47 TILDE = '~',
2b965a44 48 BANG = '!',
3bbe2135 49 PERCENT = '%',
c616de4f 50 PLUS = '+',
811e0e67
TL
51 MINUS = '-',
52 ASTERISK = '*',
3c98e80b
DN
53 AMPERSAND = '&',
54 PIPE = '|',
55 CARET = '^',
c616de4f
TM
56 ENDOFLINE = '\n',
57 QUESTIONMARK = '?',
d7837182 58
983ea35c
TL
59 HOST = 256,
60 FIRST_TOKEN = HOST,
61 HARDWARE = 257,
62 FILENAME = 258,
63 FIXED_ADDR = 259,
64 OPTION = 260,
65 ETHERNET = 261,
66 STRING = 262,
67 NUMBER = 263,
68 NUMBER_OR_NAME = 264,
69 NAME = 265,
70 TIMESTAMP = 266,
71 STARTS = 267,
72 ENDS = 268,
73 UID = 269,
74 CLASS = 270,
75 LEASE = 271,
76 RANGE = 272,
77 PACKET = 273,
78 CIADDR = 274,
79 YIADDR = 275,
80 SIADDR = 276,
81 GIADDR = 277,
82 SUBNET = 278,
83 NETMASK = 279,
84 DEFAULT_LEASE_TIME = 280,
85 MAX_LEASE_TIME = 281,
86 VENDOR_CLASS = 282,
87 USER_CLASS = 283,
88 SHARED_NETWORK = 284,
89 SERVER_NAME = 285,
90 DYNAMIC_BOOTP = 286,
91 SERVER_IDENTIFIER = 287,
92 DYNAMIC_BOOTP_LEASE_CUTOFF = 288,
93 DYNAMIC_BOOTP_LEASE_LENGTH = 289,
94 BOOT_UNKNOWN_CLIENTS = 290,
95 NEXT_SERVER = 291,
96 TOKEN_RING = 292,
97 GROUP = 293,
98 ONE_LEASE_PER_CLIENT = 294,
99 GET_LEASE_HOSTNAMES = 295,
100 USE_HOST_DECL_NAMES = 296,
101 SEND = 297,
102 CLIENT_IDENTIFIER = 298,
103 REQUEST = 299,
104 REQUIRE = 300,
105 TIMEOUT = 301,
106 RETRY = 302,
107 SELECT_TIMEOUT = 303,
108 SCRIPT = 304,
109 INTERFACE = 305,
110 RENEW = 306,
111 REBIND = 307,
112 EXPIRE = 308,
113 UNKNOWN_CLIENTS = 309,
114 ALLOW = 310,
983ea35c
TL
115 DENY = 312,
116 BOOTING = 313,
117 DEFAULT = 314,
118 MEDIA = 315,
119 MEDIUM = 316,
120 ALIAS = 317,
121 REBOOT = 318,
007e3ee4 122 TOKEN_ABANDONED = 319,
983ea35c
TL
123 BACKOFF_CUTOFF = 320,
124 INITIAL_INTERVAL = 321,
125 NAMESERVER = 322,
126 DOMAIN = 323,
127 SEARCH = 324,
128 SUPERSEDE = 325,
129 APPEND = 326,
130 PREPEND = 327,
131 HOSTNAME = 328,
132 CLIENT_HOSTNAME = 329,
133 REJECT = 330,
134 USE_LEASE_ADDR_FOR_DEFAULT_ROUTE = 331,
135 MIN_LEASE_TIME = 332,
136 MIN_SECS = 333,
137 AND = 334,
138 OR = 335,
983ea35c
TL
139 SUBSTRING = 337,
140 SUFFIX = 338,
141 CHECK = 339,
142 EXTRACT_INT = 340,
143 IF = 341,
8a04c615 144 TOKEN_ADD = 342,
983ea35c
TL
145 BREAK = 343,
146 ELSE = 344,
147 ELSIF = 345,
148 SUBCLASS = 346,
149 MATCH = 347,
150 SPAWN = 348,
151 WITH = 349,
152 EXISTS = 350,
f197003d
TL
153 POOL = 351,
154 UNKNOWN = 352,
155 CLIENTS = 353,
156 KNOWN = 354,
157 AUTHENTICATED = 355,
158 UNAUTHENTICATED = 356,
159 ALL = 357,
160 DYNAMIC = 358,
161 MEMBERS = 359,
162 OF = 360,
163 PSEUDO = 361,
00a7748f
TL
164 LIMIT = 362,
165 BILLING = 363,
c66b869e
TL
166 PEER = 364,
167 FAILOVER = 365,
168 MY = 366,
169 PARTNER = 367,
170 PRIMARY = 368,
171 SECONDARY = 369,
172 IDENTIFIER = 370,
173 PORT = 371,
174 MAX_TRANSMIT_IDLE = 372,
175 MAX_RESPONSE_DELAY = 373,
176 PARTNER_DOWN = 374,
177 NORMAL = 375,
178 COMMUNICATIONS_INTERRUPTED = 376,
179 POTENTIAL_CONFLICT = 377,
180 RECOVER = 378,
219a65eb 181 TOKEN_FDDI = 379,
6b6126fb
TL
182 AUTHORITATIVE = 380,
183 TOKEN_NOT = 381,
40d08f51
TL
184 AUTHENTICATION = 383,
185 IGNORE = 384,
186 ACCEPT = 385,
187 PREFER = 386,
188 DONT = 387,
1e382a09
TL
189 CODE = 388,
190 ARRAY = 389,
191 BOOLEAN = 390,
192 INTEGER = 391,
193 SIGNED = 392,
194 UNSIGNED = 393,
195 IP_ADDRESS = 394,
196 TEXT = 395,
197 STRING_TOKEN = 396,
6cad5838 198 SPACE = 397,
b7afba03 199 CONCAT = 398,
3cb23d09 200 ENCODE_INT = 399,
da38df14
TL
201 REVERSE = 402,
202 LEASED_ADDRESS = 403,
203 BINARY_TO_ASCII = 404,
d7d2cbe8 204 PICK = 405,
79a65726
TL
205 CONFIG_OPTION = 406,
206 HOST_DECL_NAME = 407,
207 ON = 408,
208 EXPIRY = 409,
209 RELEASE = 410,
210 COMMIT = 411,
069e9f4c
TL
211 DNS_UPDATE = 412,
212 LEASE_TIME = 413,
1c5d5731 213 STATIC = 414,
be1ee858
TL
214 NEVER = 415,
215 INFINITE = 416,
007e3ee4 216 TOKEN_DELETED = 417,
846d7d54 217 UPDATED_DNS_RR = 418,
337b3e52 218 DNS_DELETE = 419,
3d201338 219 DUPLICATES = 420,
679c2655
TL
220 DECLINES = 421,
221 TSTP = 422,
222 TSFP = 423,
223 OWNER = 424,
224 IS = 425,
225 HBA = 426,
226 MAX_UNACKED_UPDATES = 427,
227 MCLT = 428,
228 SPLIT = 429,
229 AT = 430,
8da06bb1 230 TOKEN_NO = 431,
375841eb
TL
231 TOKEN_DELETE = 432,
232 NS_UPDATE = 433,
233 UPDATE = 434,
234 SWITCH = 435,
235 CASE = 436,
236 NS_FORMERR = 437,
237 NS_NOERROR = 438,
238 NS_NOTAUTH = 439,
239 NS_NOTIMP = 440,
240 NS_NOTZONE = 441,
241 NS_NXDOMAIN = 442,
242 NS_NXRRSET = 443,
243 NS_REFUSED = 444,
244 NS_SERVFAIL = 445,
245 NS_YXDOMAIN = 446,
246 NS_YXRRSET = 447,
247 TOKEN_NULL = 448,
248 TOKEN_SET = 449,
249 DEFINED = 450,
250 UNSET = 451,
251 EVAL = 452,
252 LET = 453,
253 FUNCTION = 454,
254 DEFINE = 455,
255 ZONE = 456,
256 KEY = 457,
257 SECRET = 458,
34bc835a
TL
258 ALGORITHM = 459,
259 LOAD = 460,
260 BALANCE = 461,
261 TOKEN_MAX = 462,
262 SECONDS = 463,
822e866a 263 ADDRESS = 464,
5965f2a0 264 RESOLUTION_INTERRUPTED = 465,
822e866a 265 STATE = 466,
8c8e27c5 266 UNKNOWN_STATE = 567,
20916cae 267 CLTT = 568,
007e3ee4
TL
268 INCLUDE = 569,
269 BINDING = 570,
270 TOKEN_FREE = 571,
271 TOKEN_ACTIVE = 572,
272 TOKEN_EXPIRED = 573,
273 TOKEN_RELEASED = 574,
274 TOKEN_RESET = 575,
275 TOKEN_BACKUP = 576,
276 TOKEN_RESERVED = 577,
277 TOKEN_BOOTP = 578,
278 TOKEN_NEXT = 579,
e7a9c293
DN
279 OMAPI = 580,
280 LOG = 581,
281 FATAL = 582,
282 ERROR = 583,
283 TOKEN_DEBUG = 584,
1b234d44 284 INFO = 585,
b4095545
TL
285 RETURN = 586,
286 PAUSED = 587,
287 RECOVER_DONE = 588,
288 SHUTDOWN = 589,
b3b9cca0
TL
289 STARTUP = 590,
290 ENCAPSULATE = 591,
2076acbe
TL
291 VENDOR = 592,
292 CLIENT_STATE = 593,
293 INIT_REBOOT = 594,
294 TOKEN_INIT = 595,
2165f83f
TL
295 SELECT = 596,
296 BOUND = 597,
297 RENEWING = 598,
298 REBINDING = 599,
5a2bee23 299 RECONTACT_INTERVAL = 600,
5ec697e6 300 CLIENT_UPDATES = 601,
1687c64b 301 TOKEN_NEW = 601,
9345f3cc
DN
302 TRANSMISSION = 602,
303 TOKEN_CLOSE = 603,
304 TOKEN_CREATE = 604,
305 TOKEN_OPEN = 605,
0b69dcc8 306 TOKEN_HELP = 606,
3417f5cf 307 END_OF_FILE = 607,
e448718d 308 RECOVER_WAIT = 608,
8da06bb1 309 TOKEN_SERVER = 609,
31bbee78 310 CONNECT = 610,
d758ad8c
TL
311 REMOVE = 611,
312 REFRESH = 612,
98311e4b
DH
313 DOMAIN_NAME = 613,
314 DO_FORWARD_UPDATE = 614,
88cd8aca 315 KNOWN_CLIENTS = 615,
2727c1cf
DH
316 ATSFP = 616,
317 LCASE = 617,
e1e1a05f 318 UCASE = 618,
f7fdb216
DH
319 WIDTH = 619,
320 LENGTH = 620,
321 HASH = 621,
5e864416
DH
322 SIZE = 622,
323 EPOCH = 623,
324 DB_TIME_FORMAT = 624,
2426234f
DH
325 LOCAL = 625,
326 MAX_LEASE_MISBALANCE = 626,
327 MAX_LEASE_OWNERSHIP = 627,
328 MAX_BALANCE = 628,
dba5803b 329 MIN_BALANCE = 629,
6d103865 330 DOMAIN_LIST = 630,
b543fea9 331 LEASEQUERY = 631,
98bd7ca0
DH
332 EXECUTE = 632,
333 IP6_ADDRESS = 633,
334 FIXED_ADDR6 = 634,
335 COMPRESSED = 635,
336 SUBNET6 = 636,
337 HOST_IDENTIFIER = 637,
338 IA_NA = 638,
1d9774ab
FD
339 IA_TA = 639,
340 IA_PD = 640,
341 IAADDR = 641,
342 IAPREFIX = 642,
343 LEASE6 = 643,
344 PREFERRED_LIFE = 644,
345 MAX_LIFE = 645,
346 DEFAULT_DUID = 646,
347 SERVER_DUID = 647,
348 LLT = 648,
349 EN = 649,
350 LL = 650,
351 RANGE6 = 651,
352 WHITESPACE = 652,
353 TOKEN_ALSO = 653,
4cafb815 354 AFTER = 654,
80c9fdb0
FD
355 ZEROLEN = 655,
356 TEMPORARY = 656,
357 PREFIX6 = 657,
0829d595 358 FIXED_PREFIX6 = 658,
792156a9 359 ANYCAST_MAC = 659,
9e3eb22a 360 CONFLICT_DONE = 660,
33ea4622 361 AUTO_PARTNER_DOWN = 661,
fdfebedf 362 GETHOSTNAME = 662,
5d082abd 363 REWIND = 663,
023fbaa0 364 INITIAL_DELAY = 664,
d424157d
SR
365 GETHOSTBYNAME = 665,
366 PRIMARY6 = 666,
b047bd38 367 SECONDARY6 = 667,
01fa619f 368 TOKEN_INFINIBAND = 668,
619304cd
SR
369 POOL6 = 669,
370 V6RELAY = 670,
45c332f0 371 V6RELOPT = 671,
347d4962
TM
372 PARSE_VENDOR_OPT = 672,
373 AUTHORING_BYTE_ORDER = 673,
374 TOKEN_LITTLE_ENDIAN = 674,
cc1bd34e
TM
375 TOKEN_BIG_ENDIAN = 675,
376 LEASE_ID_FORMAT = 676,
377 TOKEN_HEX = 677,
e6ffc27f
TM
378 TOKEN_OCTAL = 678,
379 KEY_ALGORITHM = 679
983ea35c 380};
d7837182
TL
381
382#define is_identifier(x) ((x) >= FIRST_TOKEN && \
d7837182 383 (x) != STRING && \
f4e348de 384 (x) != NUMBER && \
98311e4b 385 (x) != END_OF_FILE)