Annotation of embedaddon/dhcp/includes/statement.h, revision 1.1
1.1 ! misho 1: /* statement.h
! 2:
! 3: Definitions for executable statements... */
! 4:
! 5: /*
! 6: * Copyright (c) 2004,2007,2009 by Internet Systems Consortium, Inc. ("ISC")
! 7: * Copyright (c) 1996-2003 by Internet Software Consortium
! 8: *
! 9: * Permission to use, copy, modify, and distribute this software for any
! 10: * purpose with or without fee is hereby granted, provided that the above
! 11: * copyright notice and this permission notice appear in all copies.
! 12: *
! 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.
! 20: *
! 21: * Internet Systems Consortium, Inc.
! 22: * 950 Charter Street
! 23: * Redwood City, CA 94063
! 24: * <info@isc.org>
! 25: * https://www.isc.org/
! 26: *
! 27: * This software has been written for Internet Systems Consortium
! 28: * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
! 29: * To learn more about Internet Systems Consortium, see
! 30: * ``https://www.isc.org/''. To learn more about Vixie Enterprises,
! 31: * see ``http://www.vix.com''. To learn more about Nominum, Inc., see
! 32: * ``http://www.nominum.com''.
! 33: */
! 34:
! 35: struct executable_statement {
! 36: int refcnt;
! 37: struct executable_statement *next;
! 38: enum statement_op {
! 39: null_statement,
! 40: if_statement,
! 41: add_statement,
! 42: eval_statement,
! 43: break_statement,
! 44: default_option_statement,
! 45: supersede_option_statement,
! 46: append_option_statement,
! 47: prepend_option_statement,
! 48: send_option_statement,
! 49: statements_statement,
! 50: on_statement,
! 51: switch_statement,
! 52: case_statement,
! 53: default_statement,
! 54: set_statement,
! 55: unset_statement,
! 56: let_statement,
! 57: define_statement,
! 58: log_statement,
! 59: return_statement,
! 60: execute_statement
! 61: } op;
! 62: union {
! 63: struct {
! 64: struct executable_statement *tc, *fc;
! 65: struct expression *expr;
! 66: } ie;
! 67: struct expression *eval;
! 68: struct expression *retval;
! 69: struct class *add;
! 70: struct option_cache *option;
! 71: struct option_cache *supersede;
! 72: struct option_cache *prepend;
! 73: struct option_cache *append;
! 74: struct executable_statement *statements;
! 75: struct {
! 76: int evtypes;
! 77: # define ON_COMMIT 1
! 78: # define ON_EXPIRY 2
! 79: # define ON_RELEASE 4
! 80: # define ON_TRANSMISSION 8
! 81: struct executable_statement *statements;
! 82: } on;
! 83: struct {
! 84: struct expression *expr;
! 85: struct executable_statement *statements;
! 86: } s_switch;
! 87: struct expression *c_case;
! 88: struct {
! 89: char *name;
! 90: struct expression *expr;
! 91: struct executable_statement *statements;
! 92: } set, let;
! 93: char *unset;
! 94: struct {
! 95: enum {
! 96: log_priority_fatal,
! 97: log_priority_error,
! 98: log_priority_debug,
! 99: log_priority_info
! 100: } priority;
! 101: struct expression *expr;
! 102: } log;
! 103: struct {
! 104: char *command;
! 105: struct expression *arglist;
! 106: int argc;
! 107: } execute;
! 108: } data;
! 109: };
! 110:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>