2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-23 10:28:08 +00:00
isc-dhcp/includes/statement.h

79 lines
2.0 KiB
C
Raw Normal View History

/* statement.h
Definitions for executable statements... */
/*
1999-03-16 05:50:46 +00:00
* Copyright (c) 1996-1999 Internet Software Consortium.
* Use is subject to license terms which appear in the file named
* ISC-LICENSE that should have accompanied this file when you
* received it. If a file named ISC-LICENSE did not accompany this
* file, or you are not sure the one you have is correct, you may
* obtain an applicable copy of the license at:
*
1999-03-16 05:50:46 +00:00
* http://www.isc.org/isc-license-1.0.html.
*
1999-03-16 05:50:46 +00:00
* This file is part of the ISC DHCP distribution. The documentation
* associated with this file is listed in the file DOCUMENTATION,
* included in the top-level directory of this release.
*
1999-03-16 05:50:46 +00:00
* Support and other services are available for ISC products - see
* http://www.isc.org for more information.
*/
struct executable_statement {
int refcnt;
struct executable_statement *next;
enum statement_op {
if_statement,
add_statement,
eval_statement,
break_statement,
default_option_statement,
supersede_option_statement,
append_option_statement,
prepend_option_statement,
1998-11-05 18:48:37 +00:00
send_option_statement,
statements_statement,
on_statement,
switch_statement,
case_statement,
default_statement,
set_statement,
unset_statement,
2000-02-15 19:42:09 +00:00
let_statement,
define_statement
} op;
union {
struct {
struct executable_statement *true, *false;
struct expression *expr;
} ie;
struct expression *eval;
struct class *add;
struct option_cache *option;
struct option_cache *supersede;
struct option_cache *prepend;
struct option_cache *append;
struct executable_statement *statements;
struct {
int evtypes;
# define ON_COMMIT 1
# define ON_EXPIRY 2
# define ON_RELEASE 4
struct executable_statement *statements;
} on;
struct {
struct expression *expr;
struct executable_statement *statements;
} s_switch;
struct expression *c_case;
struct {
char *name;
struct expression *expr;
struct executable_statement *statements;
} set, let;
char *unset;
} data;
};