mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-09-02 15:25:48 +00:00
New declarations, malloc debugging, scoping.
This commit is contained in:
268
includes/dhcpd.h
268
includes/dhcpd.h
@@ -30,9 +30,7 @@
|
|||||||
#if defined (NSUPDATE)
|
#if defined (NSUPDATE)
|
||||||
# include <arpa/nameser.h>
|
# include <arpa/nameser.h>
|
||||||
# include <resolv.h>
|
# include <resolv.h>
|
||||||
# if __RES >= 19991006
|
# include <res_update.h>
|
||||||
# include <res_update.h>
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
@@ -224,7 +222,7 @@ struct lease {
|
|||||||
unsigned char uid_buf [32];
|
unsigned char uid_buf [32];
|
||||||
char *hostname;
|
char *hostname;
|
||||||
char *client_hostname;
|
char *client_hostname;
|
||||||
struct binding *bindings;
|
struct binding_scope scope;
|
||||||
struct host_decl *host;
|
struct host_decl *host;
|
||||||
struct subnet *subnet;
|
struct subnet *subnet;
|
||||||
struct pool *pool;
|
struct pool *pool;
|
||||||
@@ -329,6 +327,7 @@ struct lease_state {
|
|||||||
#define SV_PID_FILE_NAME 27
|
#define SV_PID_FILE_NAME 27
|
||||||
#define SV_DUPLICATES 28
|
#define SV_DUPLICATES 28
|
||||||
#define SV_DECLINES 29
|
#define SV_DECLINES 29
|
||||||
|
#define SV_DDNS_UPDATES 30
|
||||||
|
|
||||||
#if !defined (DEFAULT_DEFAULT_LEASE_TIME)
|
#if !defined (DEFAULT_DEFAULT_LEASE_TIME)
|
||||||
# define DEFAULT_DEFAULT_LEASE_TIME 43200
|
# define DEFAULT_DEFAULT_LEASE_TIME 43200
|
||||||
@@ -749,6 +748,48 @@ struct dns_query {
|
|||||||
int backoff; /* Current backoff, in seconds. */
|
int backoff; /* Current backoff, in seconds. */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL)
|
||||||
|
#define DMDOFFSET (sizeof (struct dmalloc_preamble))
|
||||||
|
#define DMLFSIZE 16
|
||||||
|
#define DMUFSIZE 16
|
||||||
|
#define DMDSIZE (DMDOFFSET + DMLFSIZE + DMUFSIZE)
|
||||||
|
|
||||||
|
struct dmalloc_preamble {
|
||||||
|
struct dmalloc_preamble *prev, *next;
|
||||||
|
size_t size;
|
||||||
|
const char *file;
|
||||||
|
int line;
|
||||||
|
unsigned long generation;
|
||||||
|
unsigned char low_fence [DMLFSIZE];
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
#define DMDOFFSET 0
|
||||||
|
#define DMDSIZE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (DEBUG_RC_HISTORY)
|
||||||
|
#if !defined (RC_HISTORY_MAX)
|
||||||
|
# define RC_HISTORY_MAX 256
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct rc_history_entry {
|
||||||
|
char *name;
|
||||||
|
VOIDPTR addr;
|
||||||
|
int refcnt;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define rc_register(x, l, y, z) do { \
|
||||||
|
rc_history [rc_history_index].file = (x); \
|
||||||
|
rc_history [rc_history_index].line = (l); \
|
||||||
|
rc_history [rc_history_index].addr = (y); \
|
||||||
|
rc_history [rc_history_index].refcnt = (z); \
|
||||||
|
if (++rc_history_index == RC_HISTORY_MAX) \
|
||||||
|
rc_history_index = 0;\
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
#define rc_register(name, addr, refcnt)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Bitmask of dhcp option codes. */
|
/* Bitmask of dhcp option codes. */
|
||||||
typedef unsigned char option_mask [16];
|
typedef unsigned char option_mask [16];
|
||||||
|
|
||||||
@@ -818,10 +859,11 @@ int parse_options PROTO ((struct packet *));
|
|||||||
int parse_option_buffer PROTO ((struct packet *, unsigned char *, unsigned));
|
int parse_option_buffer PROTO ((struct packet *, unsigned char *, unsigned));
|
||||||
int cons_options PROTO ((struct packet *, struct dhcp_packet *, struct lease *,
|
int cons_options PROTO ((struct packet *, struct dhcp_packet *, struct lease *,
|
||||||
int, struct option_state *, struct option_state *,
|
int, struct option_state *, struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
int, int, int, struct data_string *));
|
int, int, int, struct data_string *));
|
||||||
int store_options PROTO ((unsigned char *, unsigned, struct packet *,
|
int store_options PROTO ((unsigned char *, unsigned, struct packet *,
|
||||||
struct lease *,
|
struct lease *, struct option_state *,
|
||||||
struct option_state *, struct option_state *,
|
struct option_state *, struct binding_scope *,
|
||||||
unsigned *, int, unsigned, unsigned, int));
|
unsigned *, int, unsigned, unsigned, int));
|
||||||
const char *pretty_print_option PROTO ((unsigned int, const unsigned char *,
|
const char *pretty_print_option PROTO ((unsigned int, const unsigned char *,
|
||||||
unsigned, int, int));
|
unsigned, int, int));
|
||||||
@@ -831,11 +873,13 @@ void do_packet PROTO ((struct interface_info *,
|
|||||||
int hashed_option_get PROTO ((struct data_string *, struct universe *,
|
int hashed_option_get PROTO ((struct data_string *, struct universe *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *, struct option_state *,
|
struct option_state *, struct option_state *,
|
||||||
struct option_state *, unsigned));
|
struct option_state *, struct binding_scope *,
|
||||||
|
unsigned));
|
||||||
int agent_option_get PROTO ((struct data_string *, struct universe *,
|
int agent_option_get PROTO ((struct data_string *, struct universe *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *, struct option_state *,
|
struct option_state *, struct option_state *,
|
||||||
struct option_state *, unsigned));
|
struct option_state *, struct binding_scope *,
|
||||||
|
unsigned));
|
||||||
void hashed_option_set PROTO ((struct universe *, struct option_state *,
|
void hashed_option_set PROTO ((struct universe *, struct option_state *,
|
||||||
struct option_cache *,
|
struct option_cache *,
|
||||||
enum statement_op));
|
enum statement_op));
|
||||||
@@ -859,21 +903,24 @@ int agent_option_state_dereference PROTO ((struct universe *,
|
|||||||
int store_option PROTO ((struct data_string *,
|
int store_option PROTO ((struct data_string *,
|
||||||
struct universe *, struct packet *, struct lease *,
|
struct universe *, struct packet *, struct lease *,
|
||||||
struct option_state *, struct option_state *,
|
struct option_state *, struct option_state *,
|
||||||
struct option_cache *));
|
struct binding_scope *, struct option_cache *));
|
||||||
int option_space_encapsulate PROTO ((struct data_string *,
|
int option_space_encapsulate PROTO ((struct data_string *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct data_string *));
|
struct data_string *));
|
||||||
int hashed_option_space_encapsulate PROTO ((struct data_string *,
|
int hashed_option_space_encapsulate PROTO ((struct data_string *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct universe *));
|
struct universe *));
|
||||||
int nwip_option_space_encapsulate PROTO ((struct data_string *,
|
int nwip_option_space_encapsulate PROTO ((struct data_string *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct universe *));
|
struct universe *));
|
||||||
|
|
||||||
/* errwarn.c */
|
/* errwarn.c */
|
||||||
@@ -891,6 +938,7 @@ int parse_warn PROTO ((struct parse *, const char *, ...))
|
|||||||
/* dhcpd.c */
|
/* dhcpd.c */
|
||||||
extern TIME cur_time;
|
extern TIME cur_time;
|
||||||
extern struct group root_group;
|
extern struct group root_group;
|
||||||
|
extern struct binding_scope global_scope;
|
||||||
extern struct in_addr limited_broadcast;
|
extern struct in_addr limited_broadcast;
|
||||||
|
|
||||||
extern u_int16_t local_port;
|
extern u_int16_t local_port;
|
||||||
@@ -1004,50 +1052,57 @@ int make_host_lookup PROTO ((struct expression **, const char *));
|
|||||||
int enter_dns_host PROTO ((struct dns_host_entry **, const char *));
|
int enter_dns_host PROTO ((struct dns_host_entry **, const char *));
|
||||||
int make_const_data PROTO ((struct expression **,
|
int make_const_data PROTO ((struct expression **,
|
||||||
const unsigned char *, unsigned, int, int));
|
const unsigned char *, unsigned, int, int));
|
||||||
|
int make_const_int PROTO ((struct expression **, unsigned long));
|
||||||
int make_concat PROTO ((struct expression **,
|
int make_concat PROTO ((struct expression **,
|
||||||
struct expression *, struct expression *));
|
struct expression *, struct expression *));
|
||||||
int make_encapsulation PROTO ((struct expression **, struct data_string *));
|
int make_encapsulation PROTO ((struct expression **, struct data_string *));
|
||||||
int make_substring PROTO ((struct expression **, struct expression *,
|
int make_substring PROTO ((struct expression **, struct expression *,
|
||||||
struct expression *, struct expression *));
|
struct expression *, struct expression *));
|
||||||
int make_limit PROTO ((struct expression **, struct expression *, int));
|
int make_limit PROTO ((struct expression **, struct expression *, int));
|
||||||
|
int make_let PROTO ((struct executable_statement **, const char *));
|
||||||
int option_cache PROTO ((struct option_cache **, struct data_string *,
|
int option_cache PROTO ((struct option_cache **, struct data_string *,
|
||||||
struct expression *, struct option *));
|
struct expression *, struct option *));
|
||||||
int evaluate_dns_expression PROTO ((ns_updrec **, struct packet *,
|
int evaluate_dns_expression PROTO ((ns_updrec **, struct packet *,
|
||||||
struct lease *, struct option_state *,
|
struct lease *, struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct expression *));
|
struct expression *));
|
||||||
int evaluate_boolean_expression PROTO ((int *,
|
int evaluate_boolean_expression PROTO ((int *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct expression *));
|
struct expression *));
|
||||||
int evaluate_data_expression PROTO ((struct data_string *,
|
int evaluate_data_expression PROTO ((struct data_string *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct expression *));
|
struct expression *));
|
||||||
int evaluate_numeric_expression PROTO
|
int evaluate_numeric_expression PROTO
|
||||||
((unsigned long *, struct packet *, struct lease *,
|
((unsigned long *, struct packet *, struct lease *,
|
||||||
struct option_state *, struct option_state *, struct expression *));
|
struct option_state *, struct option_state *, struct binding_scope *,
|
||||||
|
struct expression *));
|
||||||
int evaluate_option_cache PROTO ((struct data_string *,
|
int evaluate_option_cache PROTO ((struct data_string *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *, struct option_state *,
|
struct option_state *, struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct option_cache *));
|
struct option_cache *));
|
||||||
int evaluate_boolean_option_cache PROTO ((int *,
|
int evaluate_boolean_option_cache PROTO ((int *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_cache *));
|
struct binding_scope *,
|
||||||
|
struct option_cache *,
|
||||||
|
const char *, int));
|
||||||
int evaluate_boolean_expression_result PROTO ((int *,
|
int evaluate_boolean_expression_result PROTO ((int *,
|
||||||
struct packet *, struct lease *,
|
struct packet *, struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct expression *));
|
struct binding_scope *,
|
||||||
|
struct expression *,
|
||||||
|
const char *, int));
|
||||||
void expression_dereference PROTO ((struct expression **, const char *));
|
void expression_dereference PROTO ((struct expression **, const char *));
|
||||||
void data_string_copy PROTO ((struct data_string *,
|
|
||||||
struct data_string *, const char *));
|
|
||||||
void data_string_forget PROTO ((struct data_string *, const char *));
|
|
||||||
void data_string_truncate PROTO ((struct data_string *, int));
|
|
||||||
int is_dns_expression PROTO ((struct expression *));
|
int is_dns_expression PROTO ((struct expression *));
|
||||||
int is_boolean_expression PROTO ((struct expression *));
|
int is_boolean_expression PROTO ((struct expression *));
|
||||||
int is_data_expression PROTO ((struct expression *));
|
int is_data_expression PROTO ((struct expression *));
|
||||||
@@ -1055,7 +1110,10 @@ int is_numeric_expression PROTO ((struct expression *));
|
|||||||
int is_compound_expression PROTO ((struct expression *));
|
int is_compound_expression PROTO ((struct expression *));
|
||||||
int op_precedence PROTO ((enum expr_op, enum expr_op));
|
int op_precedence PROTO ((enum expr_op, enum expr_op));
|
||||||
enum expression_context op_context PROTO ((enum expr_op));
|
enum expression_context op_context PROTO ((enum expr_op));
|
||||||
int write_expression (FILE *, struct expression *, int, int, int);
|
int write_expression PROTO ((FILE *, struct expression *, int, int, int));
|
||||||
|
struct binding *find_binding PROTO ((struct binding_scope *, const char *));
|
||||||
|
int free_bindings PROTO ((struct binding_scope *, const char *));
|
||||||
|
int binding_scope_dereference PROTO ((struct binding_scope **, const char *));
|
||||||
|
|
||||||
/* dhcp.c */
|
/* dhcp.c */
|
||||||
extern int outstanding_pings;
|
extern int outstanding_pings;
|
||||||
@@ -1092,86 +1150,107 @@ void bootp PROTO ((struct packet *));
|
|||||||
struct group *clone_group PROTO ((struct group *, const char *));
|
struct group *clone_group PROTO ((struct group *, const char *));
|
||||||
|
|
||||||
/* alloc.c */
|
/* alloc.c */
|
||||||
VOIDPTR dmalloc PROTO ((unsigned, const char *));
|
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL)
|
||||||
void dfree PROTO ((VOIDPTR, const char *));
|
extern struct dmalloc_preamble *dmalloc_list;
|
||||||
struct dhcp_packet *new_dhcp_packet PROTO ((const char *));
|
extern unsigned long dmalloc_outstanding;
|
||||||
struct hash_table *new_hash_table PROTO ((int, const char *));
|
extern unsigned long dmalloc_longterm;
|
||||||
struct hash_bucket *new_hash_bucket PROTO ((const char *));
|
extern unsigned long dmalloc_generation;
|
||||||
struct lease *new_lease PROTO ((const char *));
|
extern unsigned long dmalloc_cutoff_generation;
|
||||||
struct lease *new_leases PROTO ((unsigned, const char *));
|
#endif
|
||||||
struct subnet *new_subnet PROTO ((const char *));
|
|
||||||
struct class *new_class PROTO ((const char *));
|
#if defined (DEBUG_RC_HISTORY)
|
||||||
struct shared_network *new_shared_network PROTO ((const char *));
|
extern struct rc_history_entry rc_history [RC_HISTORY_MAX];
|
||||||
struct group *new_group PROTO ((const char *));
|
extern int rc_history_index;
|
||||||
struct protocol *new_protocol PROTO ((const char *));
|
#endif
|
||||||
struct lease_state *new_lease_state PROTO ((const char *));
|
VOIDPTR dmalloc PROTO ((unsigned, const char *, int));
|
||||||
struct domain_search_list *new_domain_search_list PROTO ((const char *));
|
void dfree PROTO ((VOIDPTR, const char *, int));
|
||||||
struct name_server *new_name_server PROTO ((const char *));
|
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL)
|
||||||
void free_name_server PROTO ((struct name_server *, const char *));
|
void dmalloc_reuse PROTO ((VOIDPTR, const char *, int, int));
|
||||||
struct option *new_option PROTO ((const char *));
|
void dmalloc_dump_outstanding PROTO ((void));
|
||||||
void free_option PROTO ((struct option *, const char *));
|
#else
|
||||||
struct universe *new_universe PROTO ((const char *));
|
#define dmalloc_reuse(x,y,z)
|
||||||
void free_universe PROTO ((struct universe *, const char *));
|
#endif
|
||||||
|
#if defined (DEBUG_RC_HISTORY)
|
||||||
|
void dump_rc_history PROTO ((void));
|
||||||
|
#endif
|
||||||
|
struct dhcp_packet *new_dhcp_packet PROTO ((const char *, int));
|
||||||
|
struct hash_table *new_hash_table PROTO ((int, const char *, int));
|
||||||
|
struct hash_bucket *new_hash_bucket PROTO ((const char *, int));
|
||||||
|
struct lease *new_lease PROTO ((const char *, int));
|
||||||
|
struct lease *new_leases PROTO ((unsigned, const char *, int));
|
||||||
|
struct subnet *new_subnet PROTO ((const char *, int));
|
||||||
|
struct class *new_class PROTO ((const char *, int));
|
||||||
|
struct shared_network *new_shared_network PROTO ((const char *, int));
|
||||||
|
struct group *new_group PROTO ((const char *, int));
|
||||||
|
struct protocol *new_protocol PROTO ((const char *, int));
|
||||||
|
struct lease_state *new_lease_state PROTO ((const char *, int));
|
||||||
|
struct domain_search_list *new_domain_search_list PROTO ((const char *, int));
|
||||||
|
struct name_server *new_name_server PROTO ((const char *, int));
|
||||||
|
void free_name_server PROTO ((struct name_server *, const char *, int));
|
||||||
|
struct option *new_option PROTO ((const char *, int));
|
||||||
|
void free_option PROTO ((struct option *, const char *, int));
|
||||||
|
struct universe *new_universe PROTO ((const char *, int));
|
||||||
|
void free_universe PROTO ((struct universe *, const char *, int));
|
||||||
void free_domain_search_list PROTO ((struct domain_search_list *,
|
void free_domain_search_list PROTO ((struct domain_search_list *,
|
||||||
const char *));
|
const char *, int));
|
||||||
void free_lease_state PROTO ((struct lease_state *, const char *));
|
void free_lease_state PROTO ((struct lease_state *, const char *, int));
|
||||||
void free_protocol PROTO ((struct protocol *, const char *));
|
void free_protocol PROTO ((struct protocol *, const char *, int));
|
||||||
void free_group PROTO ((struct group *, const char *));
|
void free_group PROTO ((struct group *, const char *, int));
|
||||||
void free_shared_network PROTO ((struct shared_network *, const char *));
|
void free_shared_network PROTO ((struct shared_network *, const char *, int));
|
||||||
void free_class PROTO ((struct class *, const char *));
|
void free_class PROTO ((struct class *, const char *, int));
|
||||||
void free_subnet PROTO ((struct subnet *, const char *));
|
void free_subnet PROTO ((struct subnet *, const char *, int));
|
||||||
void free_lease PROTO ((struct lease *, const char *));
|
void free_lease PROTO ((struct lease *, const char *, int));
|
||||||
void free_hash_bucket PROTO ((struct hash_bucket *, const char *));
|
void free_hash_bucket PROTO ((struct hash_bucket *, const char *, int));
|
||||||
void free_hash_table PROTO ((struct hash_table *, const char *));
|
void free_hash_table PROTO ((struct hash_table *, const char *, int));
|
||||||
void free_dhcp_packet PROTO ((struct dhcp_packet *, const char *));
|
void free_dhcp_packet PROTO ((struct dhcp_packet *, const char *, int));
|
||||||
struct client_lease *new_client_lease PROTO ((const char *));
|
struct client_lease *new_client_lease PROTO ((const char *, int));
|
||||||
void free_client_lease PROTO ((struct client_lease *, const char *));
|
void free_client_lease PROTO ((struct client_lease *, const char *, int));
|
||||||
struct pool *new_pool PROTO ((const char *));
|
struct pool *new_pool PROTO ((const char *, int));
|
||||||
void free_pool PROTO ((struct pool *, const char *));
|
void free_pool PROTO ((struct pool *, const char *, int));
|
||||||
struct auth_key *new_auth_key PROTO ((unsigned, const char *));
|
struct auth_key *new_auth_key PROTO ((unsigned, const char *, int));
|
||||||
void free_auth_key PROTO ((struct auth_key *, const char *));
|
void free_auth_key PROTO ((struct auth_key *, const char *, int));
|
||||||
struct permit *new_permit PROTO ((const char *));
|
struct permit *new_permit PROTO ((const char *, int));
|
||||||
void free_permit PROTO ((struct permit *, const char *));
|
void free_permit PROTO ((struct permit *, const char *, int));
|
||||||
pair new_pair PROTO ((const char *));
|
pair new_pair PROTO ((const char *, int));
|
||||||
void free_pair PROTO ((pair, const char *));
|
void free_pair PROTO ((pair, const char *, int));
|
||||||
int expression_allocate PROTO ((struct expression **, const char *));
|
int expression_allocate PROTO ((struct expression **, const char *, int));
|
||||||
int expression_reference PROTO ((struct expression **,
|
int expression_reference PROTO ((struct expression **,
|
||||||
struct expression *, const char *));
|
struct expression *, const char *, int));
|
||||||
void free_expression PROTO ((struct expression *, const char *));
|
void free_expression PROTO ((struct expression *, const char *, int));
|
||||||
int option_cache_allocate PROTO ((struct option_cache **, const char *));
|
int option_cache_allocate PROTO ((struct option_cache **, const char *, int));
|
||||||
int option_cache_reference PROTO ((struct option_cache **,
|
int option_cache_reference PROTO ((struct option_cache **,
|
||||||
struct option_cache *, const char *));
|
struct option_cache *, const char *, int));
|
||||||
int buffer_allocate PROTO ((struct buffer **, unsigned, const char *));
|
int buffer_allocate PROTO ((struct buffer **, unsigned, const char *, int));
|
||||||
int buffer_reference PROTO ((struct buffer **, struct buffer *, const char *));
|
int buffer_reference PROTO ((struct buffer **, struct buffer *,
|
||||||
int buffer_dereference PROTO ((struct buffer **, const char *));
|
const char *, int));
|
||||||
|
int buffer_dereference PROTO ((struct buffer **, const char *, int));
|
||||||
int dns_host_entry_allocate PROTO ((struct dns_host_entry **,
|
int dns_host_entry_allocate PROTO ((struct dns_host_entry **,
|
||||||
const char *, const char *));
|
const char *, const char *, int));
|
||||||
int dns_host_entry_reference PROTO ((struct dns_host_entry **,
|
int dns_host_entry_reference PROTO ((struct dns_host_entry **,
|
||||||
struct dns_host_entry *, const char *));
|
struct dns_host_entry *,
|
||||||
|
const char *, int));
|
||||||
int dns_host_entry_dereference PROTO ((struct dns_host_entry **,
|
int dns_host_entry_dereference PROTO ((struct dns_host_entry **,
|
||||||
const char *));
|
const char *, int));
|
||||||
int option_state_allocate PROTO ((struct option_state **, const char *));
|
int option_state_allocate PROTO ((struct option_state **, const char *, int));
|
||||||
int option_state_reference PROTO ((struct option_state **,
|
int option_state_reference PROTO ((struct option_state **,
|
||||||
struct option_state *, const char *));
|
struct option_state *, const char *, int));
|
||||||
int option_state_dereference PROTO ((struct option_state **, const char *));
|
int option_state_dereference PROTO ((struct option_state **,
|
||||||
|
const char *, int));
|
||||||
|
void data_string_copy PROTO ((struct data_string *,
|
||||||
|
struct data_string *, const char *, int));
|
||||||
|
void data_string_forget PROTO ((struct data_string *, const char *, int));
|
||||||
|
void data_string_truncate PROTO ((struct data_string *, int));
|
||||||
int executable_statement_allocate PROTO ((struct executable_statement **,
|
int executable_statement_allocate PROTO ((struct executable_statement **,
|
||||||
const char *));
|
const char *, int));
|
||||||
int executable_statement_reference PROTO ((struct executable_statement **,
|
int executable_statement_reference PROTO ((struct executable_statement **,
|
||||||
struct executable_statement *,
|
struct executable_statement *,
|
||||||
const char *));
|
const char *, int));
|
||||||
int executable_statement_dereference PROTO ((struct executable_statement **,
|
int packet_allocate PROTO ((struct packet **, const char *, int));
|
||||||
const char *));
|
int packet_reference PROTO ((struct packet **,
|
||||||
void write_statements (FILE *, struct executable_statement *, int);
|
struct packet *, const char *, int));
|
||||||
struct executable_statement *find_matching_case PROTO ((struct packet *,
|
int packet_dereference PROTO ((struct packet **, const char *, int));
|
||||||
struct lease *,
|
int binding_scope_allocate PROTO ((struct binding_scope **,
|
||||||
struct option_state *,
|
const char *, int));
|
||||||
struct option_state *,
|
|
||||||
struct expression *,
|
|
||||||
struct executable_statement *));
|
|
||||||
|
|
||||||
int packet_allocate PROTO ((struct packet **, const char *));
|
|
||||||
int packet_reference PROTO ((struct packet **, struct packet *, const char *));
|
|
||||||
int packet_dereference PROTO ((struct packet **, const char *));
|
|
||||||
|
|
||||||
/* print.c */
|
/* print.c */
|
||||||
char *print_hw_addr PROTO ((int, int, unsigned char *));
|
char *print_hw_addr PROTO ((int, int, unsigned char *));
|
||||||
@@ -1396,6 +1475,7 @@ unsigned char *hash_lookup PROTO ((struct hash_table *,
|
|||||||
|
|
||||||
/* tables.c */
|
/* tables.c */
|
||||||
extern struct universe dhcp_universe;
|
extern struct universe dhcp_universe;
|
||||||
|
extern struct universe nwip_universe;
|
||||||
extern struct option dhcp_options [256];
|
extern struct option dhcp_options [256];
|
||||||
extern int dhcp_option_default_priority_list [];
|
extern int dhcp_option_default_priority_list [];
|
||||||
extern int dhcp_option_default_priority_list_count;
|
extern int dhcp_option_default_priority_list_count;
|
||||||
@@ -1660,12 +1740,24 @@ int bill_class PROTO ((struct lease *, struct class *));
|
|||||||
int execute_statements PROTO ((struct packet *,
|
int execute_statements PROTO ((struct packet *,
|
||||||
struct lease *,
|
struct lease *,
|
||||||
struct option_state *, struct option_state *,
|
struct option_state *, struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct executable_statement *));
|
struct executable_statement *));
|
||||||
void execute_statements_in_scope PROTO ((struct packet *,
|
void execute_statements_in_scope PROTO ((struct packet *,
|
||||||
struct lease *,
|
struct lease *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
struct option_state *,
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
struct group *, struct group *));
|
struct group *, struct group *));
|
||||||
|
int executable_statement_dereference PROTO ((struct executable_statement **,
|
||||||
|
const char *, int));
|
||||||
|
void write_statements (FILE *, struct executable_statement *, int);
|
||||||
|
struct executable_statement *find_matching_case PROTO ((struct packet *,
|
||||||
|
struct lease *,
|
||||||
|
struct option_state *,
|
||||||
|
struct option_state *,
|
||||||
|
struct binding_scope *,
|
||||||
|
struct expression *,
|
||||||
|
struct executable_statement *));
|
||||||
|
|
||||||
/* auth.c */
|
/* auth.c */
|
||||||
void enter_auth_key PROTO ((struct data_string *, struct auth_key *));
|
void enter_auth_key PROTO ((struct data_string *, struct auth_key *));
|
||||||
@@ -1839,7 +1931,7 @@ extern struct subnet *find_subnet PROTO ((struct iaddr));
|
|||||||
void enter_shared_network PROTO ((struct shared_network *));
|
void enter_shared_network PROTO ((struct shared_network *));
|
||||||
void new_shared_network_interface PROTO ((struct parse *,
|
void new_shared_network_interface PROTO ((struct parse *,
|
||||||
struct shared_network *,
|
struct shared_network *,
|
||||||
const char *));
|
const char *, int));
|
||||||
int subnet_inner_than PROTO ((struct subnet *, struct subnet *, int));
|
int subnet_inner_than PROTO ((struct subnet *, struct subnet *, int));
|
||||||
void enter_subnet PROTO ((struct subnet *));
|
void enter_subnet PROTO ((struct subnet *));
|
||||||
void enter_lease PROTO ((struct lease *));
|
void enter_lease PROTO ((struct lease *));
|
||||||
|
Reference in New Issue
Block a user