|
enum | resolve { perform = 0
, fatal
, pass
} |
|
enum | expression_context {
context_any
, context_boolean
, context_data
, context_numeric
,
context_dns
, context_data_or_numeric
, context_function
} |
|
enum | statement_op {
null_statement
, if_statement
, add_statement
, eval_statement
,
break_statement
, default_option_statement
, supersede_option_statement
, append_option_statement
,
prepend_option_statement
, send_option_statement
, statements_statement
, on_statement
,
switch_statement
, case_statement
, default_statement
, set_statement
,
unset_statement
, let_statement
, define_statement
, log_statement
,
return_statement
, execute_statement
, vendor_opt_statement
} |
|
enum | expr_op {
expr_none
, expr_match
, expr_check
, expr_equal
,
expr_substring
, expr_suffix
, expr_concat
, expr_host_lookup
,
expr_and
, expr_or
, expr_not
, expr_option
,
expr_hardware
, expr_hw_type
, expr_hw_address
, expr_packet
,
expr_const_data
, expr_extract_int8
, expr_extract_int16
, expr_extract_int32
,
expr_encode_int8
, expr_encode_int16
, expr_encode_int32
, expr_const_int
,
expr_exists
, expr_encapsulate
, expr_known
, expr_reverse
,
expr_leased_address
, expr_binary_to_ascii
, expr_config_option
, expr_host_decl_name
,
expr_pick_first_value
, expr_lease_time
, expr_dns_transaction
, expr_static
,
expr_ns_add
, expr_ns_delete
, expr_ns_exists
, expr_ns_not_exists
,
expr_not_equal
, expr_null
, expr_variable_exists
, expr_variable_reference
,
expr_filename
, expr_sname
, expr_arg
, expr_funcall
,
expr_function
, expr_add
, expr_subtract
, expr_multiply
,
expr_divide
, expr_remainder
, expr_binary_and
, expr_binary_or
,
expr_binary_xor
, expr_client_state
, expr_ucase
, expr_lcase
,
expr_regex_match
, expr_iregex_match
, expr_gethostname
, expr_v6relay
,
expr_concat_dclist
} |
|
enum | option_status {
kea_unknown = 0
, isc_dhcp_unknown = 1
, known = 2
, special = 3
,
dynamic = 4
} |
|
|
| TAILQ_HEAD (parses, parse) parses |
|
void | stackPush (struct parse *cfile, struct element *elem) |
|
void | parse_error (struct parse *, const char *,...) __attribute__((__format__(__printf__ |
|
void | __attribute__ ((noreturn)) |
|
struct parse * | new_parse (int, char *, size_t, const char *, int) |
|
void | end_parse (struct parse *) |
|
void | save_parse_state (struct parse *) |
|
void | restore_parse_state (struct parse *) |
|
enum dhcp_token | next_token (const char **, unsigned *, struct parse *) |
|
enum dhcp_token | peek_token (const char **, unsigned *, struct parse *) |
|
enum dhcp_token | next_raw_token (const char **, unsigned *, struct parse *) |
|
enum dhcp_token | peek_raw_token (const char **, unsigned *, struct parse *) |
|
size_t | conf_file_parse (struct parse *) |
|
void | read_conf_file (struct parse *, const char *, int) |
|
size_t | conf_file_subparse (struct parse *, int) |
|
isc_boolean_t | parse_statement (struct parse *, int, isc_boolean_t) |
|
void | get_permit (struct parse *, struct element *) |
| Parse allow and deny statements.
|
|
void | parse_pool_statement (struct parse *, int) |
| Parse a pool statement.
|
|
void | parse_lbrace (struct parse *) |
|
void | parse_host_declaration (struct parse *) |
|
void | parse_class_declaration (struct parse *, int) |
|
void | parse_shared_net_declaration (struct parse *) |
|
void | parse_subnet_declaration (struct parse *) |
|
void | parse_subnet6_declaration (struct parse *) |
|
void | parse_group_declaration (struct parse *) |
|
void | close_group (struct parse *, struct element *) |
|
struct element * | parse_fixed_addr_param (struct parse *, enum dhcp_token) |
|
void | parse_address_range (struct parse *, int, size_t) |
|
void | parse_address_range6 (struct parse *, int, size_t) |
|
void | parse_prefix6 (struct parse *, int, size_t) |
|
void | parse_fixed_prefix6 (struct parse *, size_t) |
|
void | parse_pool6_statement (struct parse *, int) |
| Parse a pool6 statement.
|
|
struct element * | parse_allow_deny (struct parse *, int) |
|
void | parse_server_duid_conf (struct parse *) |
|
void | parse_directive (struct parse *) |
| Parse (and execute) a directive (extension)
|
|
void | parse_option_space_dir (struct parse *) |
|
void | parse_option_code_dir (struct parse *, struct option *) |
|
void | parse_option_status_dir (struct parse *, struct option *, enum dhcp_token) |
|
void | parse_option_local_dir (struct parse *, struct option *) |
|
void | parse_option_define_dir (struct parse *, struct option *) |
|
void | skip_to_semi (struct parse *) |
|
void | skip_to_rbrace (struct parse *, int) |
|
void | parse_semi (struct parse *) |
|
void | parse_string (struct parse *, char **, unsigned *) |
|
struct string * | parse_host_name (struct parse *) |
|
struct string * | parse_ip_addr_or_hostname (struct parse *, isc_boolean_t) |
|
struct string * | parse_ip_addr (struct parse *) |
|
struct string * | parse_ip6_addr (struct parse *) |
|
struct string * | parse_ip6_addr_txt (struct parse *) |
|
struct element * | parse_hardware_param (struct parse *) |
|
void | parse_lease_time (struct parse *, time_t *) |
|
struct string * | parse_numeric_aggregate (struct parse *, unsigned char *, unsigned *, int, int, unsigned) |
|
void | convert_num (struct parse *, unsigned char *, const char *, int, unsigned) |
|
struct option * | parse_option_name (struct parse *, isc_boolean_t, isc_boolean_t *) |
|
void | parse_option_space_decl (struct parse *) |
|
void | parse_option_code_definition (struct parse *, struct option *) |
|
void | parse_vendor_code_definition (struct parse *, struct option *) |
|
struct string * | convert_format (const char *, isc_boolean_t *, isc_boolean_t *) |
|
struct string * | parse_base64 (struct parse *) |
|
struct string * | parse_cshl (struct parse *) |
|
struct string * | parse_hexa (struct parse *) |
|
isc_boolean_t | parse_executable_statements (struct element *, struct parse *, isc_boolean_t *, enum expression_context) |
|
isc_boolean_t | parse_executable_statement (struct element *, struct parse *, isc_boolean_t *, enum expression_context, isc_boolean_t) |
|
isc_boolean_t | parse_zone (struct element *, struct parse *) |
|
isc_boolean_t | parse_key (struct element *, struct parse *) |
|
isc_boolean_t | parse_on_statement (struct element *, struct parse *, isc_boolean_t *) |
|
isc_boolean_t | parse_switch_statement (struct element *, struct parse *, isc_boolean_t *) |
|
isc_boolean_t | parse_case_statement (struct element *, struct parse *, isc_boolean_t *, enum expression_context) |
|
isc_boolean_t | parse_if_statement (struct element *, struct parse *, isc_boolean_t *) |
|
isc_boolean_t | parse_boolean_expression (struct element *, struct parse *, isc_boolean_t *) |
|
isc_boolean_t | parse_boolean (struct parse *) |
|
isc_boolean_t | parse_data_expression (struct element *, struct parse *, isc_boolean_t *) |
|
isc_boolean_t | numeric_expression (struct element *, struct parse *, isc_boolean_t *) |
|
isc_boolean_t | parse_non_binary (struct element *, struct parse *, isc_boolean_t *, enum expression_context) |
|
isc_boolean_t | parse_expression (struct element *, struct parse *, isc_boolean_t *, enum expression_context, struct element *, enum expr_op) |
|
struct string * | escape_option_string (unsigned, const char *, isc_boolean_t *, isc_boolean_t *) |
|
isc_boolean_t | parse_option_data (struct element *, struct parse *, struct option *) |
|
isc_boolean_t | parse_option_binary (struct element *, struct parse *, struct option *, isc_boolean_t) |
|
struct string * | parse_option_textbin (struct parse *, struct option *) |
|
isc_boolean_t | parse_option_statement (struct element *, struct parse *, struct option *, enum statement_op) |
|
isc_boolean_t | parse_config_data (struct element *, struct parse *, struct option *) |
|
isc_boolean_t | parse_config_statement (struct element *, struct parse *, struct option *, enum statement_op) |
|
struct string * | parse_option_token (struct parse *, const char *, isc_boolean_t *, isc_boolean_t *, isc_boolean_t *) |
|
struct string * | parse_option_token_binary (struct parse *, const char *) |
|
struct string * | parse_domain_list (struct parse *, isc_boolean_t) |
|
isc_boolean_t | is_boolean_expression (struct element *) |
|
isc_boolean_t | is_data_expression (struct element *) |
|
isc_boolean_t | is_numeric_expression (struct element *) |
|
int | expr_precedence (enum expr_op, struct element *) |
|
void | spaces_init (void) |
|
void | options_init (void) |
|
struct space * | space_lookup (const char *) |
|
struct option * | option_lookup_name (const char *, const char *) |
|
struct option * | kea_lookup_name (const char *, const char *) |
|
struct option * | option_lookup_code (const char *, unsigned) |
|
void | push_space (struct space *) |
|
void | push_option (struct option *) |
|
void | add_option_data (struct element *, struct element *) |
|
void | merge_option_data (struct element *, struct element *) |
|
struct comments * | get_config_comments (unsigned) |
|
const char * | display_status (enum option_status) |
|
struct element * | json_parse (struct parse *) |
|
struct element * | json_list_parse (struct parse *) |
|
struct element * | json_map_parse (struct parse *) |
|
const char * | print_expression (struct element *, isc_boolean_t *) |
|
const char * | print_boolean_expression (struct element *, isc_boolean_t *) |
|
const char * | print_data_expression (struct element *, isc_boolean_t *) |
|
const char * | print_numeric_expression (struct element *, isc_boolean_t *) |
|
struct element * | reduce_boolean_expression (struct element *) |
|
struct element * | reduce_data_expression (struct element *) |
|
struct element * | reduce_numeric_expression (struct element *) |
|
struct element * | eval_expression (struct element *, isc_boolean_t *) |
|
struct element * | eval_boolean_expression (struct element *, isc_boolean_t *) |
|
struct element * | eval_data_expression (struct element *, isc_boolean_t *) |
|
struct element * | eval_numeric_expression (struct element *, isc_boolean_t *) |
|
Parse allow and deny statements.
This function handles the common processing code for permit and deny statements in the parse_pool_statement and parse_pool6_statement functions.
The allow or deny token should already be consumed, this function expects one of the following: known-clients; unknown-clients; known clients; unknown clients; authenticated clients; unauthenticated clients; all clients; dynamic bootp clients; members of <class name>; after <date>;
- Parameters
-
[in] | cfile | = the configuration file being parsed |
[in] | permit_head | = the head of the permit list (permit or prohibit) to which to attach the newly created permit structure |
Definition at line 1004 of file confparse.c.