ISC DHCP 4.4.3-P1
A reference DHCPv4 and DHCPv6 implementation
 
Loading...
Searching...
No Matches
keama.h File Reference
#include "data.h"
#include "dhctoken.h"
#include <time.h>

Go to the source code of this file.

Data Structures

struct  parse
 
struct  option_def
 
struct  space_def
 
struct  space
 
struct  option
 

Macros

#define EOL   '\n'
 
#define HTYPE_ETHER   1
 
#define HTYPE_IEEE802   6
 
#define HTYPE_FDDI   8
 
#define DHO_DHCP_SERVER_IDENTIFIER   54
 
#define DHO_VENDOR_CLASS_IDENTIFIER   60
 
#define DHO_USER_CLASS   77
 
#define DHO_VIVSO_SUBOPTIONS   125
 
#define D6O_VENDOR_OPTS   17
 
#define MAX_V6RELAY_HOPS   32
 
#define PARAMETER   0
 
#define TOPLEVEL   1
 
#define ROOT_GROUP   2
 
#define HOST_DECL   3
 
#define SHARED_NET_DECL   4
 
#define SUBNET_DECL   5
 
#define CLASS_DECL   6
 
#define GROUP_DECL   7
 
#define POOL_DECL   8
 
#define CLASS_TYPE_VENDOR   0
 
#define CLASS_TYPE_USER   1
 
#define CLASS_TYPE_CLASS   2
 
#define CLASS_TYPE_SUBCLASS   3
 
#define CLASS_DECL_DELETED   1
 
#define CLASS_DECL_DYNAMIC   2
 
#define CLASS_DECL_STATIC   4
 
#define CLASS_DECL_SUBCLASS   8
 
#define HARDWARE_ADDR_LEN   20
 
#define skip_token(a, b, c)
 

Enumerations

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
}
 

Functions

 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 parsenew_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 elementparse_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 elementparse_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 stringparse_host_name (struct parse *)
 
struct stringparse_ip_addr_or_hostname (struct parse *, isc_boolean_t)
 
struct stringparse_ip_addr (struct parse *)
 
struct stringparse_ip6_addr (struct parse *)
 
struct stringparse_ip6_addr_txt (struct parse *)
 
struct elementparse_hardware_param (struct parse *)
 
void parse_lease_time (struct parse *, time_t *)
 
struct stringparse_numeric_aggregate (struct parse *, unsigned char *, unsigned *, int, int, unsigned)
 
void convert_num (struct parse *, unsigned char *, const char *, int, unsigned)
 
struct optionparse_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 stringconvert_format (const char *, isc_boolean_t *, isc_boolean_t *)
 
struct stringparse_base64 (struct parse *)
 
struct stringparse_cshl (struct parse *)
 
struct stringparse_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 stringescape_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 stringparse_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 stringparse_option_token (struct parse *, const char *, isc_boolean_t *, isc_boolean_t *, isc_boolean_t *)
 
struct stringparse_option_token_binary (struct parse *, const char *)
 
struct stringparse_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 spacespace_lookup (const char *)
 
struct optionoption_lookup_name (const char *, const char *)
 
struct optionkea_lookup_name (const char *, const char *)
 
struct optionoption_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 elementjson_parse (struct parse *)
 
struct elementjson_list_parse (struct parse *)
 
struct elementjson_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 elementreduce_boolean_expression (struct element *)
 
struct elementreduce_data_expression (struct element *)
 
struct elementreduce_numeric_expression (struct element *)
 
struct elementeval_expression (struct element *, isc_boolean_t *)
 
struct elementeval_boolean_expression (struct element *, isc_boolean_t *)
 
struct elementeval_data_expression (struct element *, isc_boolean_t *)
 
struct elementeval_numeric_expression (struct element *, isc_boolean_t *)
 

Variables

enum resolve resolve
 
int local_family
 
char * hook_library_path
 
isc_boolean_t use_isc_lifetimes
 
isc_boolean_t global_hr
 

Macro Definition Documentation

◆ CLASS_DECL

#define CLASS_DECL   6

Definition at line 131 of file keama.h.

◆ CLASS_DECL_DELETED

#define CLASS_DECL_DELETED   1

Definition at line 141 of file keama.h.

◆ CLASS_DECL_DYNAMIC

#define CLASS_DECL_DYNAMIC   2

Definition at line 142 of file keama.h.

◆ CLASS_DECL_STATIC

#define CLASS_DECL_STATIC   4

Definition at line 143 of file keama.h.

◆ CLASS_DECL_SUBCLASS

#define CLASS_DECL_SUBCLASS   8

Definition at line 144 of file keama.h.

◆ CLASS_TYPE_CLASS

#define CLASS_TYPE_CLASS   2

Definition at line 138 of file keama.h.

◆ CLASS_TYPE_SUBCLASS

#define CLASS_TYPE_SUBCLASS   3

Definition at line 139 of file keama.h.

◆ CLASS_TYPE_USER

#define CLASS_TYPE_USER   1

Definition at line 137 of file keama.h.

◆ CLASS_TYPE_VENDOR

#define CLASS_TYPE_VENDOR   0

Definition at line 136 of file keama.h.

◆ D6O_VENDOR_OPTS

#define D6O_VENDOR_OPTS   17

Definition at line 54 of file keama.h.

◆ DHO_DHCP_SERVER_IDENTIFIER

#define DHO_DHCP_SERVER_IDENTIFIER   54

Definition at line 48 of file keama.h.

◆ DHO_USER_CLASS

#define DHO_USER_CLASS   77

Definition at line 50 of file keama.h.

◆ DHO_VENDOR_CLASS_IDENTIFIER

#define DHO_VENDOR_CLASS_IDENTIFIER   60

Definition at line 49 of file keama.h.

◆ DHO_VIVSO_SUBOPTIONS

#define DHO_VIVSO_SUBOPTIONS   125

Definition at line 51 of file keama.h.

◆ EOL

#define EOL   '\n'

Definition at line 25 of file keama.h.

◆ GROUP_DECL

#define GROUP_DECL   7

Definition at line 132 of file keama.h.

◆ HARDWARE_ADDR_LEN

#define HARDWARE_ADDR_LEN   20

Definition at line 147 of file keama.h.

◆ HOST_DECL

#define HOST_DECL   3

Definition at line 128 of file keama.h.

◆ HTYPE_ETHER

#define HTYPE_ETHER   1

Definition at line 44 of file keama.h.

◆ HTYPE_FDDI

#define HTYPE_FDDI   8

Definition at line 46 of file keama.h.

◆ HTYPE_IEEE802

#define HTYPE_IEEE802   6

Definition at line 45 of file keama.h.

◆ MAX_V6RELAY_HOPS

#define MAX_V6RELAY_HOPS   32

Definition at line 55 of file keama.h.

◆ PARAMETER

#define PARAMETER   0

Definition at line 125 of file keama.h.

◆ POOL_DECL

#define POOL_DECL   8

Definition at line 133 of file keama.h.

◆ ROOT_GROUP

#define ROOT_GROUP   2

Definition at line 127 of file keama.h.

◆ SHARED_NET_DECL

#define SHARED_NET_DECL   4

Definition at line 129 of file keama.h.

◆ skip_token

#define skip_token ( a,
b,
c )
Value:
((void) next_token((a),(b),(c)))
enum dhcp_token next_token(const char **rval, unsigned *rlen, struct parse *cfile)
Definition conflex.c:369

Definition at line 327 of file keama.h.

◆ SUBNET_DECL

#define SUBNET_DECL   5

Definition at line 130 of file keama.h.

◆ TOPLEVEL

#define TOPLEVEL   1

Definition at line 126 of file keama.h.

Enumeration Type Documentation

◆ expr_op

enum expr_op
Enumerator
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 

Definition at line 191 of file keama.h.

◆ expression_context

Enumerator
context_any 
context_boolean 
context_data 
context_numeric 
context_dns 
context_data_or_numeric 
context_function 

Definition at line 151 of file keama.h.

◆ option_status

Enumerator
kea_unknown 
isc_dhcp_unknown 
known 
special 
dynamic 

Definition at line 261 of file keama.h.

◆ resolve

enum resolve
Enumerator
perform 
fatal 
pass 

Definition at line 34 of file keama.h.

◆ statement_op

Enumerator
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 

Definition at line 163 of file keama.h.

Function Documentation

◆ __attribute__()

void __attribute__ ( (noreturn) )

◆ add_option_data()

void add_option_data ( struct element * src,
struct element * dst )

Definition at line 658 of file options.c.

◆ close_group()

void close_group ( struct parse * cfile,
struct element * group )

Definition at line 2589 of file confparse.c.

◆ conf_file_parse()

size_t conf_file_parse ( struct parse * )

◆ conf_file_subparse()

size_t conf_file_subparse ( struct parse * cfile,
int type )

Definition at line 535 of file confparse.c.

◆ convert_format()

struct string * convert_format ( const char * fmt,
isc_boolean_t * is_array,
isc_boolean_t * encapsulate )

Definition at line 1338 of file parse.c.

◆ convert_num()

void convert_num ( struct parse * cfile,
unsigned char * buf,
const char * str,
int base,
unsigned size )

Definition at line 840 of file parse.c.

◆ display_status()

const char * display_status ( enum option_status)

Definition at line 1140 of file options.c.

◆ end_parse()

void end_parse ( struct parse * cfile)

Definition at line 97 of file conflex.c.

◆ escape_option_string()

struct string * escape_option_string ( unsigned len,
const char * val,
isc_boolean_t * require_binary,
isc_boolean_t * modified )

Definition at line 3896 of file parse.c.

◆ eval_boolean_expression()

struct element * eval_boolean_expression ( struct element * expr,
isc_boolean_t * modifiedp )

Definition at line 72 of file eval.c.

◆ eval_data_expression()

struct element * eval_data_expression ( struct element * expr,
isc_boolean_t * modifiedp )

Definition at line 476 of file eval.c.

◆ eval_expression()

struct element * eval_expression ( struct element * expr,
isc_boolean_t * modifiedp )

Definition at line 43 of file eval.c.

◆ eval_numeric_expression()

struct element * eval_numeric_expression ( struct element * expr,
isc_boolean_t * modifiedp )

Definition at line 1481 of file eval.c.

◆ expr_precedence()

int expr_precedence ( enum expr_op,
struct element * expr )

Definition at line 6135 of file parse.c.

◆ get_config_comments()

struct comments * get_config_comments ( unsigned code)

Definition at line 720 of file options.c.

◆ get_permit()

void get_permit ( struct parse * cfile,
struct element * permit_head )

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.

◆ is_boolean_expression()

isc_boolean_t is_boolean_expression ( struct element * expr)

Definition at line 5701 of file parse.c.

◆ is_data_expression()

isc_boolean_t is_data_expression ( struct element * expr)

Definition at line 5722 of file parse.c.

◆ is_numeric_expression()

isc_boolean_t is_numeric_expression ( struct element * expr)

Definition at line 5758 of file parse.c.

◆ json_list_parse()

struct element * json_list_parse ( struct parse * cfile)

Definition at line 80 of file json.c.

◆ json_map_parse()

struct element * json_map_parse ( struct parse * cfile)

Definition at line 120 of file json.c.

◆ json_parse()

struct element * json_parse ( struct parse * cfile)

Definition at line 32 of file json.c.

◆ kea_lookup_name()

struct option * kea_lookup_name ( const char * space,
const char * name )

Definition at line 599 of file options.c.

◆ merge_option_data()

void merge_option_data ( struct element * src,
struct element * dst )

Definition at line 708 of file options.c.

◆ new_parse()

struct parse * new_parse ( int file,
char * inbuf,
size_t buflen,
const char * name,
int eolp )

Definition at line 48 of file conflex.c.

◆ next_raw_token()

enum dhcp_token next_raw_token ( const char ** rval,
unsigned * rlen,
struct parse * cfile )

Definition at line 380 of file conflex.c.

◆ next_token()

enum dhcp_token next_token ( const char ** rval,
unsigned * rlen,
struct parse * cfile )

Definition at line 369 of file conflex.c.

◆ numeric_expression()

isc_boolean_t numeric_expression ( struct element * ,
struct parse * ,
isc_boolean_t *  )

◆ option_lookup_code()

struct option * option_lookup_code ( const char * space,
unsigned code )

Definition at line 624 of file options.c.

◆ option_lookup_name()

struct option * option_lookup_name ( const char * space,
const char * name )

Definition at line 579 of file options.c.

◆ options_init()

void options_init ( void )

Definition at line 420 of file options.c.

◆ parse_address_range()

void parse_address_range ( struct parse * cfile,
int type,
size_t where )

Definition at line 3097 of file confparse.c.

◆ parse_address_range6()

void parse_address_range6 ( struct parse * cfile,
int type,
size_t where )

Definition at line 3212 of file confparse.c.

◆ parse_allow_deny()

struct element * parse_allow_deny ( struct parse * cfile,
int flag )

Definition at line 3703 of file confparse.c.

◆ parse_base64()

struct string * parse_base64 ( struct parse * cfile)

Definition at line 1434 of file parse.c.

◆ parse_boolean()

isc_boolean_t parse_boolean ( struct parse * cfile)

Definition at line 3498 of file parse.c.

◆ parse_boolean_expression()

isc_boolean_t parse_boolean_expression ( struct element * expr,
struct parse * cfile,
isc_boolean_t * lose )

Definition at line 2586 of file parse.c.

◆ parse_case_statement()

isc_boolean_t parse_case_statement ( struct element * result,
struct parse * cfile,
isc_boolean_t * lose,
enum expression_context )

Definition at line 2437 of file parse.c.

◆ parse_class_declaration()

void parse_class_declaration ( struct parse * cfile,
int type )

Definition at line 1584 of file confparse.c.

◆ parse_config_data()

isc_boolean_t parse_config_data ( struct element * expr,
struct parse * cfile,
struct option * option )

Definition at line 4692 of file parse.c.

◆ parse_config_statement()

isc_boolean_t parse_config_statement ( struct element * result,
struct parse * cfile,
struct option * option,
enum statement_op )

Definition at line 4831 of file parse.c.

◆ parse_cshl()

struct string * parse_cshl ( struct parse * cfile)

Definition at line 1489 of file parse.c.

◆ parse_data_expression()

isc_boolean_t parse_data_expression ( struct element * expr,
struct parse * cfile,
isc_boolean_t * lose )

Definition at line 2645 of file parse.c.

◆ parse_directive()

void parse_directive ( struct parse * cfile)

Parse (and execute) a directive (extension)

OPTION SPACE <name> [ALIAS <kea-name>] [KNOWN*2|UNKNOWN*2|DYNAMIC] OPTION <universe>.<name> [CHECK] [ALIAS <name>] [CODE = "<format>"] [KNOWN*2|UNKNOWN*2|DYNAMIC] [LOCAL|DEFINE]

Definition at line 4001 of file confparse.c.

◆ parse_domain_list()

struct string * parse_domain_list ( struct parse * cfile,
isc_boolean_t binary )

Definition at line 4646 of file parse.c.

◆ parse_error()

void parse_error ( struct parse * ,
const char * ,
... )

◆ parse_executable_statement()

isc_boolean_t parse_executable_statement ( struct element * result,
struct parse * cfile,
isc_boolean_t * lose,
enum expression_context,
isc_boolean_t direct )

Definition at line 1590 of file parse.c.

◆ parse_executable_statements()

isc_boolean_t parse_executable_statements ( struct element * statements,
struct parse * cfile,
isc_boolean_t * lose,
enum expression_context )

Definition at line 1566 of file parse.c.

◆ parse_expression()

isc_boolean_t parse_expression ( struct element * expr,
struct parse * cfile,
isc_boolean_t * lose,
enum expression_context,
struct element * lhs,
enum expr_op )

Definition at line 3617 of file parse.c.

◆ parse_fixed_addr_param()

struct element * parse_fixed_addr_param ( struct parse * cfile,
enum dhcp_token )

Definition at line 3008 of file confparse.c.

◆ parse_fixed_prefix6()

void parse_fixed_prefix6 ( struct parse * cfile,
size_t host_decl )

Definition at line 3409 of file confparse.c.

◆ parse_group_declaration()

void parse_group_declaration ( struct parse * cfile)

Definition at line 2520 of file confparse.c.

◆ parse_hardware_param()

struct element * parse_hardware_param ( struct parse * cfile)

Definition at line 395 of file parse.c.

◆ parse_hexa()

struct string * parse_hexa ( struct parse * cfile)

Definition at line 1524 of file parse.c.

◆ parse_host_declaration()

void parse_host_declaration ( struct parse * cfile)

Definition at line 1282 of file confparse.c.

◆ parse_host_name()

struct string * parse_host_name ( struct parse * cfile)

Definition at line 196 of file parse.c.

◆ parse_if_statement()

isc_boolean_t parse_if_statement ( struct element * result,
struct parse * cfile,
isc_boolean_t * lose )

Definition at line 2477 of file parse.c.

◆ parse_ip6_addr()

struct string * parse_ip6_addr ( struct parse * cfile)

Definition at line 325 of file parse.c.

◆ parse_ip6_addr_txt()

struct string * parse_ip6_addr_txt ( struct parse * cfile)

Definition at line 379 of file parse.c.

◆ parse_ip_addr()

struct string * parse_ip_addr ( struct parse * cfile)

Definition at line 291 of file parse.c.

◆ parse_ip_addr_or_hostname()

struct string * parse_ip_addr_or_hostname ( struct parse * cfile,
isc_boolean_t check_multi )

Definition at line 215 of file parse.c.

◆ parse_key()

isc_boolean_t parse_key ( struct element * result,
struct parse * cfile )

Definition at line 2210 of file parse.c.

◆ parse_lbrace()

void parse_lbrace ( struct parse * cfile)

Definition at line 1269 of file confparse.c.

◆ parse_lease_time()

void parse_lease_time ( struct parse * cfile,
time_t * timep )

Definition at line 690 of file parse.c.

◆ parse_non_binary()

isc_boolean_t parse_non_binary ( struct element * expr,
struct parse * cfile,
isc_boolean_t * lose,
enum expression_context )

Definition at line 2687 of file parse.c.

◆ parse_numeric_aggregate()

struct string * parse_numeric_aggregate ( struct parse * cfile,
unsigned char * buf,
unsigned * max,
int separator,
int base,
unsigned size )

Definition at line 734 of file parse.c.

◆ parse_on_statement()

isc_boolean_t parse_on_statement ( struct element * result,
struct parse * cfile,
isc_boolean_t * lose )

Definition at line 2309 of file parse.c.

◆ parse_option_binary()

isc_boolean_t parse_option_binary ( struct element * expr,
struct parse * cfile,
struct option * option,
isc_boolean_t ambiguous )

Definition at line 4047 of file parse.c.

◆ parse_option_code_definition()

void parse_option_code_definition ( struct parse * cfile,
struct option * option )

Definition at line 1572 of file parse.c.

◆ parse_option_code_dir()

void parse_option_code_dir ( struct parse * cfile,
struct option * option )

Definition at line 4156 of file confparse.c.

◆ parse_option_data()

isc_boolean_t parse_option_data ( struct element * expr,
struct parse * cfile,
struct option * option )

Definition at line 3929 of file parse.c.

◆ parse_option_define_dir()

void parse_option_define_dir ( struct parse * cfile,
struct option * option )

Definition at line 4316 of file confparse.c.

◆ parse_option_local_dir()

void parse_option_local_dir ( struct parse * cfile,
struct option * option )

Definition at line 4268 of file confparse.c.

◆ parse_option_name()

struct option * parse_option_name ( struct parse * cfile,
isc_boolean_t allocate,
isc_boolean_t * known )

Definition at line 643 of file parse.c.

◆ parse_option_space_decl()

void parse_option_space_decl ( struct parse * cfile)

Definition at line 1349 of file parse.c.

◆ parse_option_space_dir()

void parse_option_space_dir ( struct parse * cfile)

Definition at line 4091 of file confparse.c.

◆ parse_option_statement()

isc_boolean_t parse_option_statement ( struct element * result,
struct parse * cfile,
struct option * option,
enum statement_op )

Definition at line 4211 of file parse.c.

◆ parse_option_status_dir()

void parse_option_status_dir ( struct parse * cfile,
struct option * option,
enum dhcp_token )

Definition at line 4236 of file confparse.c.

◆ parse_option_textbin()

struct string * parse_option_textbin ( struct parse * cfile,
struct option * option )

Definition at line 4169 of file parse.c.

◆ parse_option_token()

struct string * parse_option_token ( struct parse * cfile,
const char * fmt,
isc_boolean_t * require_binary,
isc_boolean_t * canon_bool,
isc_boolean_t * modified )

Definition at line 4388 of file parse.c.

◆ parse_option_token_binary()

struct string * parse_option_token_binary ( struct parse * cfile,
const char * fmt )

Definition at line 4511 of file parse.c.

◆ parse_pool6_statement()

void parse_pool6_statement ( struct parse * cfile,
int type )

Parse a pool6 statement.

Pool statements are used to group declarations and permit & deny information with a specific address range. They must be declared within a shared network or subnet and there may be multiple pools withing a shared network or subnet. Each pool may have a different set of permit or deny options.

Parameters
[in]cfile= the configuration file being parsed
[in]type= the type of the enclosing statement. This must be SUBNET_DECL for this function.
Returns
void - This function either parses the statement and updates the structures or it generates an error message and possible halts the program if it encounters a problem.

Definition at line 3472 of file confparse.c.

◆ parse_pool_statement()

void parse_pool_statement ( struct parse * cfile,
int type )

Parse a pool statement.

Pool statements are used to group declarations and permit & deny information with a specific address range. They must be declared within a shared network or subnet and there may be multiple pools withing a shared network or subnet. Each pool may have a different set of permit or deny options.

Parameters
[in]cfile= the configuration file being parsed
[in]type= the type of the enclosing statement. This must be SHARED_NET_DECL or SUBNET_DECL for this function.
Returns
void - This function either parses the statement and updates the structures or it generates an error message and possible halts the program if it encounters a problem.

Definition at line 1142 of file confparse.c.

◆ parse_prefix6()

void parse_prefix6 ( struct parse * cfile,
int type,
size_t where )

Definition at line 3333 of file confparse.c.

◆ parse_semi()

void parse_semi ( struct parse * cfile)

Definition at line 139 of file parse.c.

◆ parse_server_duid_conf()

void parse_server_duid_conf ( struct parse * cfile)

Definition at line 3790 of file confparse.c.

◆ parse_shared_net_declaration()

void parse_shared_net_declaration ( struct parse * cfile)

Definition at line 2105 of file confparse.c.

◆ parse_statement()

isc_boolean_t parse_statement ( struct parse * cfile,
int type,
isc_boolean_t declaration )

Definition at line 584 of file confparse.c.

◆ parse_string()

void parse_string ( struct parse * cfile,
char ** sptr,
unsigned * lptr )

Definition at line 156 of file parse.c.

◆ parse_subnet6_declaration()

void parse_subnet6_declaration ( struct parse * cfile)

Definition at line 2429 of file confparse.c.

◆ parse_subnet_declaration()

void parse_subnet_declaration ( struct parse * cfile)

Definition at line 2337 of file confparse.c.

◆ parse_switch_statement()

isc_boolean_t parse_switch_statement ( struct element * result,
struct parse * cfile,
isc_boolean_t * lose )

Definition at line 2375 of file parse.c.

◆ parse_vendor_code_definition()

void parse_vendor_code_definition ( struct parse * cfile,
struct option * option )

Definition at line 1283 of file parse.c.

◆ parse_zone()

isc_boolean_t parse_zone ( struct element * zone,
struct parse * cfile )

Definition at line 2098 of file parse.c.

◆ peek_raw_token()

enum dhcp_token peek_raw_token ( const char ** rval,
unsigned * rlen,
struct parse * cfile )

Definition at line 454 of file conflex.c.

◆ peek_token()

enum dhcp_token peek_token ( const char ** rval,
unsigned * rlen,
struct parse * cfile )

Definition at line 443 of file conflex.c.

◆ print_boolean_expression()

const char * print_boolean_expression ( struct element * expr,
isc_boolean_t * lose )

Definition at line 59 of file print.c.

◆ print_data_expression()

const char * print_data_expression ( struct element * expr,
isc_boolean_t * lose )

Definition at line 496 of file print.c.

◆ print_expression()

const char * print_expression ( struct element * expr,
isc_boolean_t * lose )

Definition at line 39 of file print.c.

◆ print_numeric_expression()

const char * print_numeric_expression ( struct element * expr,
isc_boolean_t * lose )

Definition at line 1023 of file print.c.

◆ push_option()

void push_option ( struct option * option)

Definition at line 649 of file options.c.

◆ push_space()

void push_space ( struct space * space)

Definition at line 642 of file options.c.

◆ read_conf_file()

void read_conf_file ( struct parse * parent,
const char * filename,
int group_type )

Definition at line 480 of file confparse.c.

◆ reduce_boolean_expression()

struct element * reduce_boolean_expression ( struct element * expr)

Definition at line 52 of file reduce.c.

◆ reduce_data_expression()

struct element * reduce_data_expression ( struct element * expr)

Definition at line 375 of file reduce.c.

◆ reduce_numeric_expression()

struct element * reduce_numeric_expression ( struct element * expr)

Definition at line 946 of file reduce.c.

◆ restore_parse_state()

void restore_parse_state ( struct parse * cfile)

Definition at line 159 of file conflex.c.

◆ save_parse_state()

void save_parse_state ( struct parse * cfile)

Definition at line 128 of file conflex.c.

◆ skip_to_rbrace()

void skip_to_rbrace ( struct parse * cfile,
int brace_count )

Definition at line 98 of file parse.c.

◆ skip_to_semi()

void skip_to_semi ( struct parse * cfile)

Definition at line 81 of file parse.c.

◆ space_lookup()

struct space * space_lookup ( const char * name)

Definition at line 565 of file options.c.

◆ spaces_init()

void spaces_init ( void )

Definition at line 400 of file options.c.

◆ stackPush()

void stackPush ( struct parse * cfile,
struct element * elem )

Definition at line 181 of file keama.c.

◆ TAILQ_HEAD()

TAILQ_HEAD ( parses ,
parse  )
extern

Variable Documentation

◆ global_hr

isc_boolean_t global_hr
extern

Definition at line 60 of file keama.c.

◆ hook_library_path

char* hook_library_path
extern

Definition at line 54 of file keama.c.

◆ local_family

int local_family
extern

Definition at line 59 of file discover.c.

◆ resolve

enum resolve resolve
extern

Definition at line 50 of file keama.c.

◆ use_isc_lifetimes

isc_boolean_t use_isc_lifetimes
extern

Definition at line 59 of file keama.c.