File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / dhcp / includes / dhctoken.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Oct 9 09:06:54 2012 UTC (11 years, 10 months ago) by misho
Branches: dhcp, MAIN
CVS tags: v4_1_R7p0, v4_1_R7, v4_1_R4, HEAD
dhcp 4.1 r7

    1: /* dhctoken.h
    2: 
    3:    Tokens for config file lexer and parser. */
    4: 
    5: /*
    6:  * Copyright (c) 2011-2012 by Internet Systems Consortium, Inc. ("ISC")
    7:  * Copyright (c) 2004,2007-2009 by Internet Systems Consortium, Inc. ("ISC")
    8:  * Copyright (c) 1996-2003 by Internet Software Consortium
    9:  *
   10:  * Permission to use, copy, modify, and distribute this software for any
   11:  * purpose with or without fee is hereby granted, provided that the above
   12:  * copyright notice and this permission notice appear in all copies.
   13:  *
   14:  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
   15:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   16:  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
   17:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   18:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   19:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
   20:  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   21:  *
   22:  *   Internet Systems Consortium, Inc.
   23:  *   950 Charter Street
   24:  *   Redwood City, CA 94063
   25:  *   <info@isc.org>
   26:  *   https://www.isc.org/
   27:  *
   28:  * This software has been written for Internet Systems Consortium
   29:  * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
   30:  * To learn more about Internet Systems Consortium, see
   31:  * ``https://www.isc.org/''.  To learn more about Vixie Enterprises,
   32:  * see ``http://www.vix.com''.   To learn more about Nominum, Inc., see
   33:  * ``http://www.nominum.com''.
   34:  */
   35: 
   36: enum dhcp_token {
   37: 	SEMI = ';',
   38: 	DOT = '.',
   39: 	COLON = ':',
   40: 	COMMA = ',',
   41: 	SLASH = '/',
   42: 	LBRACE = '{',
   43: 	RBRACE = '}',
   44: 	LPAREN = '(',
   45: 	RPAREN = ')',
   46: 	EQUAL = '=',
   47: 	TILDE = '~',
   48: 	BANG = '!',
   49: 	PERCENT = '%',
   50: 	PLUS = '+',
   51: 	MINUS = '-',
   52: 	ASTERISK = '*',
   53: 	AMPERSAND = '&',
   54: 	PIPE = '|',
   55: 	CARET = '^',
   56: 	ENDOFLINE = '\n',
   57: 	QUESTIONMARK = '?',
   58: 
   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,
  115: 	DENY = 312,
  116: 	BOOTING = 313,
  117: 	DEFAULT = 314,
  118: 	MEDIA = 315,
  119: 	MEDIUM = 316,
  120: 	ALIAS = 317,
  121: 	REBOOT = 318,
  122: 	TOKEN_ABANDONED = 319,
  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,
  139: 	SUBSTRING = 337,
  140: 	SUFFIX = 338,
  141: 	CHECK = 339,
  142: 	EXTRACT_INT = 340,
  143: 	IF = 341,
  144: 	TOKEN_ADD = 342,
  145: 	BREAK = 343,
  146: 	ELSE = 344,
  147: 	ELSIF = 345,
  148: 	SUBCLASS = 346,
  149: 	MATCH = 347,
  150: 	SPAWN = 348,
  151: 	WITH = 349,
  152: 	EXISTS = 350,
  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,
  164: 	LIMIT = 362,
  165: 	BILLING = 363,
  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,
  181: 	TOKEN_FDDI = 379,
  182: 	AUTHORITATIVE = 380,
  183: 	TOKEN_NOT = 381,
  184: 	AUTHENTICATION = 383,
  185: 	IGNORE = 384,
  186: 	ACCEPT = 385,
  187: 	PREFER = 386,
  188: 	DONT = 387,
  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,
  198: 	SPACE = 397,
  199: 	CONCAT = 398,
  200: 	ENCODE_INT = 399,
  201: 	REVERSE = 402,
  202: 	LEASED_ADDRESS = 403,
  203: 	BINARY_TO_ASCII = 404,
  204: 	PICK = 405,
  205: 	CONFIG_OPTION = 406,
  206: 	HOST_DECL_NAME = 407,
  207: 	ON = 408,
  208: 	EXPIRY = 409,
  209: 	RELEASE = 410,
  210: 	COMMIT = 411,
  211: 	DNS_UPDATE = 412,
  212: 	LEASE_TIME = 413,
  213: 	STATIC = 414,
  214: 	NEVER = 415,
  215: 	INFINITE = 416,
  216: 	TOKEN_DELETED = 417,
  217: 	UPDATED_DNS_RR = 418,
  218: 	DNS_DELETE = 419,
  219: 	DUPLICATES = 420,
  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,
  230: 	TOKEN_NO = 431,
  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,
  258: 	ALGORITHM = 459,
  259: 	LOAD = 460,
  260: 	BALANCE = 461,
  261: 	TOKEN_MAX = 462,
  262: 	SECONDS = 463,
  263: 	ADDRESS = 464,
  264: 	RESOLUTION_INTERRUPTED = 465,
  265: 	STATE = 466,
  266: 	UNKNOWN_STATE = 567,
  267: 	CLTT = 568,
  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,
  279: 	OMAPI = 580,
  280: 	LOG = 581,
  281: 	FATAL = 582,
  282: 	ERROR = 583,
  283: 	TOKEN_DEBUG = 584,
  284: 	INFO = 585,
  285: 	RETURN = 586,
  286: 	PAUSED = 587,
  287: 	RECOVER_DONE = 588,
  288: 	SHUTDOWN = 589,
  289: 	STARTUP = 590,
  290: 	ENCAPSULATE = 591,
  291: 	VENDOR = 592,
  292: 	CLIENT_STATE = 593,
  293: 	INIT_REBOOT = 594,
  294: 	TOKEN_INIT = 595,
  295: 	SELECT = 596,
  296: 	BOUND = 597,
  297: 	RENEWING = 598,
  298: 	REBINDING = 599,
  299: 	RECONTACT_INTERVAL = 600,
  300: 	CLIENT_UPDATES = 601,
  301: 	TOKEN_NEW = 601,
  302: 	TRANSMISSION = 602,
  303: 	TOKEN_CLOSE = 603,
  304: 	TOKEN_CREATE = 604,
  305: 	TOKEN_OPEN = 605,
  306: 	TOKEN_HELP = 606,
  307: 	END_OF_FILE = 607,
  308: 	RECOVER_WAIT = 608,
  309: 	TOKEN_SERVER = 609,
  310: 	CONNECT = 610,
  311: 	REMOVE = 611,
  312: 	REFRESH = 612,
  313: 	DOMAIN_NAME = 613,
  314: 	DO_FORWARD_UPDATE = 614,
  315: 	KNOWN_CLIENTS = 615,
  316: 	ATSFP = 616,
  317: 	LCASE = 617,
  318: 	UCASE = 618,
  319: 	WIDTH = 619,
  320: 	LENGTH = 620,
  321: 	HASH = 621,
  322: 	SIZE = 622,
  323: 	EPOCH = 623,
  324: 	DB_TIME_FORMAT = 624,
  325: 	LOCAL = 625,
  326: 	MAX_LEASE_MISBALANCE = 626,
  327: 	MAX_LEASE_OWNERSHIP = 627,
  328: 	MAX_BALANCE = 628,
  329: 	MIN_BALANCE = 629,
  330: 	DOMAIN_LIST = 630,
  331: 	LEASEQUERY = 631,
  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,
  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,
  354: 	AFTER = 654,
  355: 	ZEROLEN = 655,
  356: 	TEMPORARY = 656,
  357: 	PREFIX6 = 657,
  358: 	FIXED_PREFIX6 = 658,
  359: 	CONFLICT_DONE = 660,
  360: 	INITIAL_DELAY = 664,
  361: 	GETHOSTBYNAME = 665,
  362: 	TOKEN_INFINIBAND = 668
  363: };
  364: 
  365: #define is_identifier(x)	((x) >= FIRST_TOKEN &&	\
  366: 				 (x) != STRING &&	\
  367: 				 (x) != NUMBER &&	\
  368: 				 (x) != END_OF_FILE)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>