]> git.ipfire.org Git - thirdparty/dhcp.git/blame - includes/dhctoken.h
Fixes bug #246.
[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 = '*',
d7837182 60
983ea35c
TL
61 HOST = 256,
62 FIRST_TOKEN = HOST,
63 HARDWARE = 257,
64 FILENAME = 258,
65 FIXED_ADDR = 259,
66 OPTION = 260,
67 ETHERNET = 261,
68 STRING = 262,
69 NUMBER = 263,
70 NUMBER_OR_NAME = 264,
71 NAME = 265,
72 TIMESTAMP = 266,
73 STARTS = 267,
74 ENDS = 268,
75 UID = 269,
76 CLASS = 270,
77 LEASE = 271,
78 RANGE = 272,
79 PACKET = 273,
80 CIADDR = 274,
81 YIADDR = 275,
82 SIADDR = 276,
83 GIADDR = 277,
84 SUBNET = 278,
85 NETMASK = 279,
86 DEFAULT_LEASE_TIME = 280,
87 MAX_LEASE_TIME = 281,
88 VENDOR_CLASS = 282,
89 USER_CLASS = 283,
90 SHARED_NETWORK = 284,
91 SERVER_NAME = 285,
92 DYNAMIC_BOOTP = 286,
93 SERVER_IDENTIFIER = 287,
94 DYNAMIC_BOOTP_LEASE_CUTOFF = 288,
95 DYNAMIC_BOOTP_LEASE_LENGTH = 289,
96 BOOT_UNKNOWN_CLIENTS = 290,
97 NEXT_SERVER = 291,
98 TOKEN_RING = 292,
99 GROUP = 293,
100 ONE_LEASE_PER_CLIENT = 294,
101 GET_LEASE_HOSTNAMES = 295,
102 USE_HOST_DECL_NAMES = 296,
103 SEND = 297,
104 CLIENT_IDENTIFIER = 298,
105 REQUEST = 299,
106 REQUIRE = 300,
107 TIMEOUT = 301,
108 RETRY = 302,
109 SELECT_TIMEOUT = 303,
110 SCRIPT = 304,
111 INTERFACE = 305,
112 RENEW = 306,
113 REBIND = 307,
114 EXPIRE = 308,
115 UNKNOWN_CLIENTS = 309,
116 ALLOW = 310,
983ea35c
TL
117 DENY = 312,
118 BOOTING = 313,
119 DEFAULT = 314,
120 MEDIA = 315,
121 MEDIUM = 316,
122 ALIAS = 317,
123 REBOOT = 318,
007e3ee4 124 TOKEN_ABANDONED = 319,
983ea35c
TL
125 BACKOFF_CUTOFF = 320,
126 INITIAL_INTERVAL = 321,
127 NAMESERVER = 322,
128 DOMAIN = 323,
129 SEARCH = 324,
130 SUPERSEDE = 325,
131 APPEND = 326,
132 PREPEND = 327,
133 HOSTNAME = 328,
134 CLIENT_HOSTNAME = 329,
135 REJECT = 330,
136 USE_LEASE_ADDR_FOR_DEFAULT_ROUTE = 331,
137 MIN_LEASE_TIME = 332,
138 MIN_SECS = 333,
139 AND = 334,
140 OR = 335,
983ea35c
TL
141 SUBSTRING = 337,
142 SUFFIX = 338,
143 CHECK = 339,
144 EXTRACT_INT = 340,
145 IF = 341,
8a04c615 146 TOKEN_ADD = 342,
983ea35c
TL
147 BREAK = 343,
148 ELSE = 344,
149 ELSIF = 345,
150 SUBCLASS = 346,
151 MATCH = 347,
152 SPAWN = 348,
153 WITH = 349,
154 EXISTS = 350,
f197003d
TL
155 POOL = 351,
156 UNKNOWN = 352,
157 CLIENTS = 353,
158 KNOWN = 354,
159 AUTHENTICATED = 355,
160 UNAUTHENTICATED = 356,
161 ALL = 357,
162 DYNAMIC = 358,
163 MEMBERS = 359,
164 OF = 360,
165 PSEUDO = 361,
00a7748f
TL
166 LIMIT = 362,
167 BILLING = 363,
c66b869e
TL
168 PEER = 364,
169 FAILOVER = 365,
170 MY = 366,
171 PARTNER = 367,
172 PRIMARY = 368,
173 SECONDARY = 369,
174 IDENTIFIER = 370,
175 PORT = 371,
176 MAX_TRANSMIT_IDLE = 372,
177 MAX_RESPONSE_DELAY = 373,
178 PARTNER_DOWN = 374,
179 NORMAL = 375,
180 COMMUNICATIONS_INTERRUPTED = 376,
181 POTENTIAL_CONFLICT = 377,
182 RECOVER = 378,
6b6126fb
TL
183 FDDI = 379,
184 AUTHORITATIVE = 380,
185 TOKEN_NOT = 381,
40d08f51
TL
186 AUTHENTICATION = 383,
187 IGNORE = 384,
188 ACCEPT = 385,
189 PREFER = 386,
190 DONT = 387,
1e382a09
TL
191 CODE = 388,
192 ARRAY = 389,
193 BOOLEAN = 390,
194 INTEGER = 391,
195 SIGNED = 392,
196 UNSIGNED = 393,
197 IP_ADDRESS = 394,
198 TEXT = 395,
199 STRING_TOKEN = 396,
6cad5838 200 SPACE = 397,
b7afba03 201 CONCAT = 398,
3cb23d09 202 ENCODE_INT = 399,
da38df14
TL
203 REVERSE = 402,
204 LEASED_ADDRESS = 403,
205 BINARY_TO_ASCII = 404,
d7d2cbe8 206 PICK = 405,
79a65726
TL
207 CONFIG_OPTION = 406,
208 HOST_DECL_NAME = 407,
209 ON = 408,
210 EXPIRY = 409,
211 RELEASE = 410,
212 COMMIT = 411,
069e9f4c
TL
213 DNS_UPDATE = 412,
214 LEASE_TIME = 413,
1c5d5731 215 STATIC = 414,
be1ee858
TL
216 NEVER = 415,
217 INFINITE = 416,
007e3ee4 218 TOKEN_DELETED = 417,
846d7d54 219 UPDATED_DNS_RR = 418,
337b3e52 220 DNS_DELETE = 419,
3d201338 221 DUPLICATES = 420,
679c2655
TL
222 DECLINES = 421,
223 TSTP = 422,
224 TSFP = 423,
225 OWNER = 424,
226 IS = 425,
227 HBA = 426,
228 MAX_UNACKED_UPDATES = 427,
229 MCLT = 428,
230 SPLIT = 429,
231 AT = 430,
232 NO = 431,
375841eb
TL
233 TOKEN_DELETE = 432,
234 NS_UPDATE = 433,
235 UPDATE = 434,
236 SWITCH = 435,
237 CASE = 436,
238 NS_FORMERR = 437,
239 NS_NOERROR = 438,
240 NS_NOTAUTH = 439,
241 NS_NOTIMP = 440,
242 NS_NOTZONE = 441,
243 NS_NXDOMAIN = 442,
244 NS_NXRRSET = 443,
245 NS_REFUSED = 444,
246 NS_SERVFAIL = 445,
247 NS_YXDOMAIN = 446,
248 NS_YXRRSET = 447,
249 TOKEN_NULL = 448,
250 TOKEN_SET = 449,
251 DEFINED = 450,
252 UNSET = 451,
253 EVAL = 452,
254 LET = 453,
255 FUNCTION = 454,
256 DEFINE = 455,
257 ZONE = 456,
258 KEY = 457,
259 SECRET = 458,
34bc835a
TL
260 ALGORITHM = 459,
261 LOAD = 460,
262 BALANCE = 461,
263 TOKEN_MAX = 462,
264 SECONDS = 463,
822e866a
TL
265 ADDRESS = 464,
266 POTENTIAL_CONFLICT_NIC = 465,
267 STATE = 466,
8c8e27c5 268 UNKNOWN_STATE = 567,
20916cae 269 CLTT = 568,
007e3ee4
TL
270 INCLUDE = 569,
271 BINDING = 570,
272 TOKEN_FREE = 571,
273 TOKEN_ACTIVE = 572,
274 TOKEN_EXPIRED = 573,
275 TOKEN_RELEASED = 574,
276 TOKEN_RESET = 575,
277 TOKEN_BACKUP = 576,
278 TOKEN_RESERVED = 577,
279 TOKEN_BOOTP = 578,
280 TOKEN_NEXT = 579,
9ea249af 281 OMAPI = 580
983ea35c 282};
d7837182
TL
283
284#define is_identifier(x) ((x) >= FIRST_TOKEN && \
d7837182 285 (x) != STRING && \
f4e348de
TL
286 (x) != NUMBER && \
287 (x) != EOF)