ISC DHCP 4.4.3-P1
A reference DHCPv4 and DHCPv6 implementation
 
Loading...
Searching...
No Matches
dhcpd.h File Reference
#include "config.h"
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <arpa/inet.h>
#include <errno.h>
#include <netdb.h>
#include <stddef.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <ctype.h>
#include <time.h>
#include <net/if.h>
#include <net/route.h>
#include <net/if_arp.h>
#include <setjmp.h>
#include "cdefs.h"
#include "osdep.h"
#include "arpa/nameser.h"
#include "ns_name.h"
#include <omapip/isclib.h>
#include <omapip/result.h>
#include "dhcp.h"
#include "dhcp6.h"
#include "statement.h"
#include "tree.h"
#include "inet.h"
#include "dhctoken.h"
#include <omapip/omapip_p.h>
#include "failover.h"
#include "ctrace.h"

Go to the source code of this file.

Data Structures

struct  ddns_fqdn_t
 
struct  parse
 
struct  string_list
 
struct  name_server
 
struct  domain_search_list
 
struct  option_tag
 
struct  agent_options
 
struct  option_cache
 
struct  option_state
 
struct  packet
 
struct  hardware
 
struct  dhcp_control_object_t
 
struct  on_star
 
struct  lease
 
struct  lease_state
 
struct  group_object
 
struct  group
 
struct  host_decl
 
struct  permit
 
struct  leasechain
 
struct  pool
 
struct  shared_network
 
struct  subnet
 
struct  collection
 
struct  class
 
struct  client_lease
 
struct  dhc6_addr
 
struct  dhc6_ia
 
struct  dhc6_lease
 
struct  client_config
 
struct  client_state
 
struct  envadd_state
 
struct  dns_update_state
 
struct  interface_info
 
struct  hardware_link
 
struct  leasequeue
 
struct  timeout
 
struct  eventqueue
 
struct  protocol
 
struct  dns_wakeup
 
struct  dns_question
 
struct  dns_answer
 
struct  dns_query
 
struct  dns_zone
 
struct  icmp_state
 
struct  iasubopt
 
struct  ia_xx
 
struct  ipv6_pool
 ipv6_pool structure More...
 
struct  ipv6_pond
 ipv6_pond structure More...
 
struct  dhcp_ddns_cb
 

Macros

#define EOL   '\n'
 
#define BYTE_NAME_HASH_SIZE   401 /* Default would be ridiculous. */
 
#define BYTE_CODE_HASH_SIZE   254 /* Default would be ridiculous. */
 
#define WORD_NAME_HASH_SIZE   20479
 
#define WORD_CODE_HASH_SIZE   16384
 
#define QUAD_NAME_HASH_SIZE   WORD_NAME_HASH_SIZE
 
#define QUAD_CODE_HASH_SIZE   WORD_CODE_HASH_SIZE
 
#define DNS_HASH_SIZE   0 /* Default. */
 
#define DEFAULT_SPACE_HASH_SIZE   11
 
#define NWIP_HASH_SIZE   17 /* A really small table. */
 
#define FQDN_HASH_SIZE   13 /* A ridiculously small table. */
 
#define VIVCO_HASH_SIZE   127
 
#define VIVSO_HASH_SIZE   VIVCO_HASH_SIZE
 
#define VSIO_HASH_SIZE   VIVCO_HASH_SIZE
 
#define VIV_ISC_HASH_SIZE   3 /* An incredulously small table. */
 
#define UNIVERSE_HASH_SIZE   13 /* A really small table. */
 
#define GROUP_HASH_SIZE   0 /* Default. */
 
#define HOST_HASH_SIZE   22501
 
#define LEASE_HASH_SIZE   100003
 
#define SCLASS_HASH_SIZE   12007
 
#define AGENT_HASH_SIZE   11 /* A really small table. */
 
#define SERVER_HASH_SIZE   (2*(sizeof(server_options) / sizeof(struct option)))
 
#define OPTION_HASH_SIZE   17
 
#define OPTION_HASH_PTWO   32 /* Next power of two above option hash. */
 
#define OPTION_HASH_EXP   5 /* The exponent for that power of two. */
 
#define compute_option_hash(x)
 
#define LEASE_STRUCT   struct leasechain
 
#define LEASE_STRUCT_PTR   struct leasechain *
 
#define LEASE_GET_FIRST(LQ)
 
#define LEASE_GET_FIRSTP(LQ)
 
#define LEASE_GET_NEXT(LQ, LEASE)
 
#define LEASE_GET_NEXTP(LQ, LEASE)
 
#define LEASE_INSERTP(LQ, LEASE)
 
#define LEASE_REMOVEP(LQ, LEASE)
 
#define LEASE_NOT_EMPTY(LQ)
 
#define LEASE_NOT_EMPTYP(LQ)
 
#define POOL_DESTROYP(LQ)
 
#define OPTION_HAD_NULLS   0x00000001
 
#define PACKET_MAX_CLASSES   5
 
#define HARDWARE_ADDR_LEN   20
 
#define HARDWARE_ADDR_LEN_IOCTL   8
 
#define FTS_FREE   1
 
#define FTS_ACTIVE   2
 
#define FTS_EXPIRED   3
 
#define FTS_RELEASED   4
 
#define FTS_ABANDONED   5
 
#define FTS_RESET   6
 
#define FTS_BACKUP   7
 
#define FTS_LAST   FTS_BACKUP
 
#define STATIC_LEASE   1
 
#define BOOTP_LEASE   2
 
#define RESERVED_LEASE   4
 
#define MS_NULL_TERMINATION   8
 
#define ON_UPDATE_QUEUE   16
 
#define ON_ACK_QUEUE   32
 
#define ON_QUEUE   (ON_UPDATE_QUEUE | ON_ACK_QUEUE)
 
#define UNICAST_BROADCAST_HACK   64
 
#define ON_DEFERRED_QUEUE   128
 
#define PERSISTENT_FLAGS   (ON_ACK_QUEUE | ON_UPDATE_QUEUE)
 
#define EPHEMERAL_FLAGS
 
#define ROOT_GROUP   0
 
#define HOST_DECL   1
 
#define SHARED_NET_DECL   2
 
#define SUBNET_DECL   3
 
#define CLASS_DECL   4
 
#define GROUP_DECL   5
 
#define POOL_DECL   6
 
#define DISCOVER_RUNNING   0
 
#define DISCOVER_SERVER   1
 
#define DISCOVER_UNCONFIGURED   2
 
#define DISCOVER_RELAY   3
 
#define DISCOVER_SERVER46   4
 
#define DISCOVER_REQUESTED   5
 
#define DDNS_UPDATE_STYLE_NONE   0
 
#define DDNS_UPDATE_STYLE_AD_HOC   1
 
#define DDNS_UPDATE_STYLE_INTERIM   2
 
#define DDNS_UPDATE_STYLE_STANDARD   3
 
#define SV_DEFAULT_LEASE_TIME   1
 
#define SV_MAX_LEASE_TIME   2
 
#define SV_MIN_LEASE_TIME   3
 
#define SV_BOOTP_LEASE_CUTOFF   4
 
#define SV_BOOTP_LEASE_LENGTH   5
 
#define SV_BOOT_UNKNOWN_CLIENTS   6
 
#define SV_DYNAMIC_BOOTP   7
 
#define SV_ALLOW_BOOTP   8
 
#define SV_ALLOW_BOOTING   9
 
#define SV_ONE_LEASE_PER_CLIENT   10
 
#define SV_GET_LEASE_HOSTNAMES   11
 
#define SV_USE_HOST_DECL_NAMES   12
 
#define SV_USE_LEASE_ADDR_FOR_DEFAULT_ROUTE   13
 
#define SV_MIN_SECS   14
 
#define SV_FILENAME   15
 
#define SV_SERVER_NAME   16
 
#define SV_NEXT_SERVER   17
 
#define SV_AUTHORITATIVE   18
 
#define SV_VENDOR_OPTION_SPACE   19
 
#define SV_ALWAYS_REPLY_RFC1048   20
 
#define SV_SITE_OPTION_SPACE   21
 
#define SV_ALWAYS_BROADCAST   22
 
#define SV_DDNS_DOMAIN_NAME   23
 
#define SV_DDNS_HOST_NAME   24
 
#define SV_DDNS_REV_DOMAIN_NAME   25
 
#define SV_LEASE_FILE_NAME   26
 
#define SV_PID_FILE_NAME   27
 
#define SV_DUPLICATES   28
 
#define SV_DECLINES   29
 
#define SV_DDNS_UPDATES   30
 
#define SV_OMAPI_PORT   31
 
#define SV_LOCAL_PORT   32
 
#define SV_LIMITED_BROADCAST_ADDRESS   33
 
#define SV_REMOTE_PORT   34
 
#define SV_LOCAL_ADDRESS   35
 
#define SV_OMAPI_KEY   36
 
#define SV_STASH_AGENT_OPTIONS   37
 
#define SV_DDNS_TTL   38
 
#define SV_DDNS_UPDATE_STYLE   39
 
#define SV_CLIENT_UPDATES   40
 
#define SV_UPDATE_OPTIMIZATION   41
 
#define SV_PING_CHECKS   42
 
#define SV_UPDATE_STATIC_LEASES   43
 
#define SV_LOG_FACILITY   44
 
#define SV_DO_FORWARD_UPDATES   45
 
#define SV_PING_TIMEOUT   46
 
#define SV_RESERVE_INFINITE   47
 
#define SV_DDNS_CONFLICT_DETECT   48
 
#define SV_LEASEQUERY   49
 
#define SV_ADAPTIVE_LEASE_TIME_THRESHOLD   50
 
#define SV_DO_REVERSE_UPDATES   51
 
#define SV_FQDN_REPLY   52
 
#define SV_PREFER_LIFETIME   53
 
#define SV_DHCPV6_LEASE_FILE_NAME   54
 
#define SV_DHCPV6_PID_FILE_NAME   55
 
#define SV_LIMIT_ADDRS_PER_IA   56
 
#define SV_LIMIT_PREFS_PER_IA   57
 
#define SV_DELAYED_ACK   58
 
#define SV_MAX_ACK_DELAY   59
 
#define SV_CACHE_THRESHOLD   78
 
#define SV_DONT_USE_FSYNC   79
 
#define SV_DDNS_LOCAL_ADDRESS4   80
 
#define SV_DDNS_LOCAL_ADDRESS6   81
 
#define SV_IGNORE_CLIENT_UIDS   82
 
#define SV_LOG_THRESHOLD_LOW   83
 
#define SV_LOG_THRESHOLD_HIGH   84
 
#define SV_ECHO_CLIENT_ID   85
 
#define SV_SERVER_ID_CHECK   86
 
#define SV_PREFIX_LEN_MODE   87
 
#define SV_DHCPV6_SET_TEE_TIMES   88
 
#define SV_ABANDON_LEASE_TIME   89
 
#define SV_CHECK_SECS_BYTE_ORDER   92
 
#define SV_DDNS_DUAL_STACK_MIXED_MODE   93
 
#define SV_DDNS_GUARD_ID_MUST_MATCH   94
 
#define SV_DDNS_OTHER_GUARD_IS_DYNAMIC   95
 
#define SV_RELEASE_ON_ROAM   96
 
#define SV_LOCAL_ADDRESS6   97
 
#define SV_BIND_LOCAL_ADDRESS6   98
 
#define SV_PING_CLTT_SECS   99
 
#define SV_PING_TIMEOUT_MS   100
 
#define DEFAULT_PING_TIMEOUT   1
 
#define DEFAULT_PING_TIMEOUT_MS   0
 
#define DEFAULT_PING_CLTT_SECS   60 /* in seconds */
 
#define DEFAULT_DELAYED_ACK   0 /* default 0 disables delayed acking */
 
#define DEFAULT_ACK_DELAY_SECS   0
 
#define DEFAULT_ACK_DELAY_USECS   250000 /* 1/4 of a second */
 
#define DEFAULT_MIN_ACK_DELAY_USECS   10000 /* 1/100 second */
 
#define DEFAULT_CACHE_THRESHOLD   25
 
#define DEFAULT_DEFAULT_LEASE_TIME   43200
 
#define DEFAULT_MIN_LEASE_TIME   300
 
#define DEFAULT_MAX_LEASE_TIME   86400
 
#define DEFAULT_DDNS_TTL   3600
 
#define MAX_DEFAULT_DDNS_TTL   3600
 
#define MIN_LEASE_WRITE   15
 
#define DEFAULT_ABANDON_LEASE_TIME   86400
 
#define MIN_V6ONLY_WAIT   300
 
#define PLM_IGNORE   0
 
#define PLM_PREFER   1
 
#define PLM_EXACT   2
 
#define PLM_MINIMUM   3
 
#define PLM_MAXIMUM   4
 
#define CL_TIMEOUT   1
 
#define CL_SELECT_INTERVAL   2
 
#define CL_REBOOT_TIMEOUT   3
 
#define CL_RETRY_INTERVAL   4
 
#define CL_BACKOFF_CUTOFF   5
 
#define CL_INITIAL_INTERVAL   6
 
#define CL_BOOTP_POLICY   7
 
#define CL_SCRIPT_NAME   8
 
#define CL_REQUESTED_OPTIONS   9
 
#define CL_REQUESTED_LEASE_TIME   10
 
#define CL_SEND_OPTIONS   11
 
#define CL_MEDIA   12
 
#define CL_REJECT_LIST   13
 
#define CL_DEFAULT_TIMEOUT   60
 
#define CL_DEFAULT_SELECT_INTERVAL   0
 
#define CL_DEFAULT_REBOOT_TIMEOUT   10
 
#define CL_DEFAULT_RETRY_INTERVAL   300
 
#define CL_DEFAULT_BACKOFF_CUTOFF   120
 
#define CL_DEFAULT_INITIAL_INTERVAL   10
 
#define CL_DEFAULT_BOOTP_POLICY   P_ACCEPT
 
#define CL_DEFAULT_REQUESTED_OPTIONS
 
#define GROUP_OBJECT_DELETED   1
 
#define GROUP_OBJECT_DYNAMIC   2
 
#define GROUP_OBJECT_STATIC   4
 
#define HOST_DECL_DELETED   1
 
#define HOST_DECL_DYNAMIC   2
 
#define HOST_DECL_STATIC   4
 
#define SHARED_IMPLICIT   1 /* This network was synthesized. */
 
#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 DHC6_ADDR_DEPREFFED   0x01
 
#define DHC6_ADDR_EXPIRED   0x02
 
#define DHC6_ADDR_DECLINED   0x04
 
#define INTERFACE_REQUESTED   1
 
#define INTERFACE_AUTOMATIC   2
 
#define INTERFACE_RUNNING   4
 
#define INTERFACE_DOWNSTREAM   8
 
#define INTERFACE_UPSTREAM   16
 
#define INTERFACE_STREAMS   (INTERFACE_DOWNSTREAM | INTERFACE_UPSTREAM)
 
#define DNS_ZONE_ACTIVE   0
 
#define DNS_ZONE_INACTIVE   1
 
#define OPTION_ZERO(mask)
 
#define OPTION_SET(mask, bit)
 
#define OPTION_CLR(mask, bit)
 
#define OPTION_ISSET(mask, bit)
 
#define OPTION_ISCLR(mask, bit)
 
#define OPTION_SPACE(x)
 
#define _PATH_DHCPD_CONF   "/etc/dhcp/dhcpd.conf"
 
#define _PATH_DHCLIENT_CONF   "/etc/dhcp/dhclient.conf"
 
#define _PATH_DHCLIENT_SCRIPT   "/usr/sbin/dhclient-script"
 
#define _PATH_RESOLV_CONF   "/etc/resolv.conf"
 
#define _PATH_DHCRELAY6_PID   LOCALSTATEDIR"/run/dhcrelay6.pid"
 
#define DHCPD_LOG_FACILITY   LOG_DAEMON
 
#define INFINITE_TIME   0xffffffff
 
#define MAX_TIME   0x7fffffff
 
#define MIN_TIME   0
 
#define DHCP_LOG_OPTIONS   LOG_NDELAY | LOG_PID
 
#define EXPIRED_IPV6_CLEANUP_TIME   (60*60)
 
#define POND_TRACK_MAX   ISC_UINT64_MAX
 
#define DDNS_UPDATE_ADDR   0x0001
 
#define DDNS_UPDATE_PTR   0x0002
 
#define DDNS_INCLUDE_RRSET   0x0004
 
#define DDNS_CONFLICT_DETECTION   0x0008
 
#define DDNS_CLIENT_DID_UPDATE   0x0010
 
#define DDNS_EXECUTE_NEXT   0x0020
 
#define DDNS_ABORT   0x0040
 
#define DDNS_STATIC_LEASE   0x0080
 
#define DDNS_ACTIVE_LEASE   0x0100
 
#define DDNS_DUAL_STACK_MIXED_MODE   0x0200
 
#define DDNS_GUARD_ID_MUST_MATCH   0x0400
 
#define DDNS_OTHER_GUARD_IS_DYNAMIC   0x0800
 
#define CONFLICT_BITS
 
#define DDNS_STATE_CLEANUP   0 /* startup or the previous step failed, cleanup */
 
#define DDNS_STATE_ADD_FW_NXDOMAIN   1
 
#define DDNS_STATE_ADD_FW_YXDHCID   2
 
#define DDNS_STATE_ADD_PTR   3
 
#define DDNS_STATE_DSMM_FW_ADD3   4
 
#define DDNS_STATE_REM_FW_YXDHCID   17
 
#define DDNS_STATE_REM_FW_NXRR   18
 
#define DDNS_STATE_REM_PTR   19
 
#define DDNS_STATE_REM_FW_DSMM_OTHER   20
 
#define DDNS_PRINT_INBOUND   1
 
#define DDNS_PRINT_OUTBOUND   0
 
#define cur_time   cur_tv.tv_sec
 
#define skip_token(a, b, c)
 
#define DEFAULT_TIME_FORMAT   0
 
#define LOCAL_TIME_FORMAT   1
 
#define print_hex_1(len, data, limit)
 
#define print_hex_2(len, data, limit)
 
#define print_hex_3(len, data, limit)
 
#define FIND_FORWARD   0
 
#define FIND_REVERSE   1
 
#define MAX_ADDRESS_STRING_LEN    (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"))
 
#define FIND_PERCENT(count, percent)
 
#define FIND_POND6_PERCENT(count, percent)
 

Typedefs

typedef struct hash_table group_hash_t
 
typedef struct hash_table universe_hash_t
 
typedef struct hash_table option_name_hash_t
 
typedef struct hash_table option_code_hash_t
 
typedef struct hash_table dns_zone_hash_t
 
typedef struct hash_table lease_ip_hash_t
 
typedef struct hash_table lease_id_hash_t
 
typedef struct hash_table host_hash_t
 
typedef struct hash_table class_hash_t
 
typedef time_t TIME
 
typedef u_int8_t binding_state_t
 
typedef void(* tvref_t) (void *, void *, const char *, int)
 
typedef void(* tvunref_t) (void *, const char *, int)
 
typedef unsigned char option_mask[16]
 
typedef struct hash_table ia_hash_t
 
typedef struct hash_table iasubopt_hash_t
 
typedef void(* ddns_action_t) (struct dhcp_ddns_cb *ddns_cb, isc_result_t result)
 
typedef struct dhcp_ddns_cb dhcp_ddns_cb_t
 

Enumerations

enum  dhcp_shutdown_state {
  shutdown_listeners , shutdown_omapi_connections , shutdown_drop_omapi_connections , shutdown_dhcp ,
  shutdown_done
}
 
enum  control_object_state_t {
  server_startup = 0 , server_running = 1 , server_shutdown = 2 , server_hibernate = 3 ,
  server_awaken = 4 , server_time_changed = 5
}
 
enum  dhcp_state {
  S_REBOOTING = 1 , S_INIT = 2 , S_SELECTING = 3 , S_REQUESTING = 4 ,
  S_BOUND = 5 , S_RENEWING = 6 , S_REBINDING = 7 , S_DECLINING = 8 ,
  S_STOPPED = 9 , S_V6ONLY = 10
}
 
enum  dhcp_pending { P_NONE = 0 , P_REBOOT = 1 , P_RELEASE = 2 }
 
enum  policy {
  P_IGNORE , P_ACCEPT , P_PREFER , P_REQUIRE ,
  P_DONT
}
 

Functions

 HASH_FUNCTIONS_DECL (option_name, const char *, struct option, option_name_hash_t) HASH_FUNCTIONS_DECL(option_code
 
option_code_hash_t HASH_FUNCTIONS_DECL (lease_ip, const unsigned char *, struct lease, lease_ip_hash_t) HASH_FUNCTIONS_DECL(lease_id
 
int parse_options (struct packet *)
 
int parse_option_buffer (struct option_state *, const unsigned char *, unsigned, struct universe *)
 
struct universefind_option_universe (struct option *, const char *)
 
int parse_encapsulated_suboptions (struct option_state *, struct option *, const unsigned char *, unsigned, struct universe *, const char *)
 
int cons_options (struct packet *, struct dhcp_packet *, struct lease *, struct client_state *, int, struct option_state *, struct option_state *, struct binding_scope **, int, int, int, struct data_string *, const char *)
 
int fqdn_universe_decode (struct option_state *, const unsigned char *, unsigned, struct universe *)
 
struct option_cachelookup_fqdn6_option (struct universe *universe, struct option_state *options, unsigned code)
 
void save_fqdn6_option (struct universe *universe, struct option_state *options, struct option_cache *oc, isc_boolean_t appendp)
 
void delete_fqdn6_option (struct universe *universe, struct option_state *options, int code)
 
void fqdn6_option_space_foreach (struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff, void(*func)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
 
int fqdn6_option_space_encapsulate (struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *universe)
 
int fqdn6_universe_decode (struct option_state *options, const unsigned char *buffer, unsigned length, struct universe *u)
 
int append_option (struct data_string *dst, struct universe *universe, struct option *option, struct data_string *src)
 
int store_options (int *ocount, unsigned char *buffer, unsigned buflen, unsigned index, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, unsigned *priority_list, int priority_len, unsigned first_cutoff, int second_cutoff, int terminate, const char *vuname)
 
int store_options6 (char *, int, struct option_state *, struct packet *, const int *, struct data_string *)
 
int format_has_text (const char *)
 
int format_min_length (const char *, struct option_cache *)
 
const char * pretty_print_option (struct option *, const unsigned char *, unsigned, int, int)
 
int pretty_escape (char **, char *, const unsigned char **, const unsigned char *)
 
int get_option (struct data_string *, struct universe *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct option_state *, struct binding_scope **, unsigned, const char *, int)
 
int get_option_int (int *, struct universe *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct option_state *, struct binding_scope **, unsigned, const char *, int)
 
void set_option (struct universe *, struct option_state *, struct option_cache *, enum statement_op)
 
struct option_cachelookup_option (struct universe *, struct option_state *, unsigned)
 
struct option_cachelookup_hashed_option (struct universe *, struct option_state *, unsigned)
 
struct option_cachenext_hashed_option (struct universe *, struct option_state *, struct option_cache *)
 
int save_option_buffer (struct universe *, struct option_state *, struct buffer *, unsigned char *, unsigned, unsigned, int)
 
int append_option_buffer (struct universe *, struct option_state *, struct buffer *, unsigned char *, unsigned, unsigned, int)
 
void build_server_oro (struct data_string *, struct option_state *, const char *, int)
 
void save_option (struct universe *, struct option_state *, struct option_cache *)
 
void also_save_option (struct universe *, struct option_state *, struct option_cache *)
 
void save_hashed_option (struct universe *, struct option_state *, struct option_cache *, isc_boolean_t appendp)
 
void delete_option (struct universe *, struct option_state *, int)
 
void delete_hashed_option (struct universe *, struct option_state *, int)
 
int option_cache_dereference (struct option_cache **, const char *, int)
 
int hashed_option_state_dereference (struct universe *, struct option_state *, const char *, int)
 
int store_option (struct data_string *, struct universe *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct option_cache *)
 
int option_space_encapsulate (struct data_string *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct data_string *)
 
int hashed_option_space_encapsulate (struct data_string *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *)
 
int nwip_option_space_encapsulate (struct data_string *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *)
 
int fqdn_option_space_encapsulate (struct data_string *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *)
 
void suboption_foreach (struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *, void(*)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *), struct option_cache *, const char *)
 
void option_space_foreach (struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *, void(*)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
 
void hashed_option_space_foreach (struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *, void(*)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
 
int linked_option_get (struct data_string *, struct universe *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct option_state *, struct binding_scope **, unsigned)
 
int linked_option_state_dereference (struct universe *, struct option_state *, const char *, int)
 
void save_linked_option (struct universe *, struct option_state *, struct option_cache *, isc_boolean_t appendp)
 
void linked_option_space_foreach (struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *, void(*)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
 
int linked_option_space_encapsulate (struct data_string *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *)
 
void delete_linked_option (struct universe *, struct option_state *, int)
 
struct option_cachelookup_linked_option (struct universe *, struct option_state *, unsigned)
 
void do_packet (struct interface_info *, struct dhcp_packet *, unsigned, unsigned int, struct iaddr, struct hardware *)
 
void do_packet6 (struct interface_info *, const char *, int, int, const struct iaddr *, isc_boolean_t)
 
int packet6_len_okay (const char *, int)
 
int validate_packet (struct packet *)
 
int add_option (struct option_state *options, unsigned int option_num, void *data, unsigned int data_len)
 
void parse_vendor_option (struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *out_options, struct binding_scope **scope)
 Parse a vendor option (option 43)
 
int main (int, char **)
 
void postconf_initialization (int)
 
void postdb_startup (void)
 
void cleanup (void)
 
void lease_pinged (struct iaddr, u_int8_t *, int)
 
void lease_ping_timeout (void *)
 
int dhcpd_interface_setup_hook (struct interface_info *ip, struct iaddr *ia)
 
isc_result_t dhcp_io_shutdown (omapi_object_t *, void *)
 
isc_result_t dhcp_set_control_state (control_object_state_t oldstate, control_object_state_t newstate)
 
isc_result_t new_parse (struct parse **, int, char *, unsigned, const char *, int)
 
isc_result_t end_parse (struct parse **)
 
isc_result_t save_parse_state (struct parse *cfile)
 
isc_result_t restore_parse_state (struct parse *cfile)
 
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 **rval, unsigned *rlen, struct parse *cfile)
 
enum dhcp_token peek_raw_token (const char **rval, unsigned *rlen, struct parse *cfile)
 
void parse_trace_setup (void)
 
isc_result_t readconf (void)
 
isc_result_t read_conf_file (const char *, struct group *, int, int)
 
void trace_conf_input (trace_type_t *, unsigned, char *)
 
void trace_conf_stop (trace_type_t *ttype)
 
isc_result_t conf_file_subparse (struct parse *, struct group *, int)
 
isc_result_t lease_file_subparse (struct parse *)
 
int parse_statement (struct parse *, struct group *, int, struct host_decl *, int)
 
void parse_failover_peer (struct parse *, struct group *, int)
 
void parse_failover_state_declaration (struct parse *, dhcp_failover_state_t *)
 
void parse_failover_state (struct parse *, enum failover_state *, TIME *)
 
int permit_list_match (struct permit *, struct permit *)
 
void parse_pool_statement (struct parse *, struct group *, int)
 Parse a pool statement.
 
int parse_lbrace (struct parse *)
 
void parse_host_declaration (struct parse *, struct group *)
 
int parse_class_declaration (struct class **, struct parse *, struct group *, int)
 
void parse_shared_net_declaration (struct parse *, struct group *)
 
void parse_subnet_declaration (struct parse *, struct shared_network *)
 
void parse_subnet6_declaration (struct parse *, struct shared_network *)
 
void parse_group_declaration (struct parse *, struct group *)
 
int parse_fixed_addr_param (struct option_cache **, struct parse *, enum dhcp_token)
 
int parse_lease_declaration (struct lease **, struct parse *)
 
int parse_ip6_addr (struct parse *, struct iaddr *)
 
int parse_ip6_addr_expr (struct expression **, struct parse *)
 
int parse_ip6_prefix (struct parse *, struct iaddr *, u_int8_t *)
 
void parse_address_range (struct parse *, struct group *, int, struct pool *, struct lease **)
 
void parse_address_range6 (struct parse *cfile, struct group *group, struct ipv6_pond *)
 
void parse_prefix6 (struct parse *cfile, struct group *group, struct ipv6_pond *)
 
void parse_fixed_prefix6 (struct parse *cfile, struct host_decl *host_decl)
 
void parse_ia_na_declaration (struct parse *)
 
void parse_ia_ta_declaration (struct parse *)
 
void parse_ia_pd_declaration (struct parse *)
 
void parse_server_duid (struct parse *cfile)
 
void parse_server_duid_conf (struct parse *cfile)
 
void parse_pool6_statement (struct parse *, struct group *, int)
 
uint32_t parse_byte_order_uint32 (const void *source)
 
int ddns_updates (struct packet *, struct lease *, struct lease *, struct iasubopt *, struct iasubopt *, struct option_state *)
 
isc_result_t ddns_removals (struct lease *, struct iasubopt *, struct dhcp_ddns_cb *, isc_boolean_t)
 
u_int16_t get_conflict_mask (struct option_state *input_options)
 
void trace_ddns_init (void)
 
void add_enumeration (struct enumeration *)
 
struct enumerationfind_enumeration (const char *, int)
 
struct enumeration_valuefind_enumeration_value (const char *, int, unsigned *, const char *)
 
void skip_to_semi (struct parse *)
 
void skip_to_rbrace (struct parse *, int)
 
int parse_semi (struct parse *)
 
int parse_string (struct parse *, char **, unsigned *)
 
char * parse_host_name (struct parse *)
 
int parse_ip_addr_or_hostname (struct expression **, struct parse *, int)
 
void parse_hardware_param (struct parse *, struct hardware *)
 
void parse_lease_time (struct parse *, TIME *)
 
unsigned char * parse_numeric_aggregate (struct parse *, unsigned char *, unsigned *, int, int, unsigned)
 
void convert_num (struct parse *, unsigned char *, const char *, int, unsigned)
 
TIME parse_date (struct parse *)
 
TIME parse_date_core (struct parse *)
 
isc_result_t parse_option_name (struct parse *, int, int *, struct option **)
 
void parse_option_space_decl (struct parse *)
 
int parse_option_code_definition (struct parse *, struct option *)
 
int parse_base64 (struct data_string *, struct parse *)
 
int parse_cshl (struct data_string *, struct parse *)
 
int parse_executable_statement (struct executable_statement **, struct parse *, int *, enum expression_context)
 
int parse_executable_statements (struct executable_statement **, struct parse *, int *, enum expression_context)
 
int parse_zone (struct dns_zone *, struct parse *)
 
int parse_key (struct parse *)
 
int parse_on_statement (struct executable_statement **, struct parse *, int *)
 
int parse_switch_statement (struct executable_statement **, struct parse *, int *)
 
int parse_case_statement (struct executable_statement **, struct parse *, int *, enum expression_context)
 
int parse_if_statement (struct executable_statement **, struct parse *, int *)
 
int parse_boolean_expression (struct expression **, struct parse *, int *)
 
int parse_boolean (struct parse *)
 
int parse_data_expression (struct expression **, struct parse *, int *)
 
int parse_numeric_expression (struct expression **, struct parse *, int *)
 
int parse_dns_expression (struct expression **, struct parse *, int *)
 
int parse_non_binary (struct expression **, struct parse *, int *, enum expression_context)
 
int parse_expression (struct expression **, struct parse *, int *, enum expression_context, struct expression **, enum expr_op)
 
int parse_option_data (struct expression **expr, struct parse *cfile, int lookups, struct option *option)
 
int parse_option_statement (struct executable_statement **, struct parse *, int, struct option *, enum statement_op)
 
int parse_option_token (struct expression **, struct parse *, const char **, struct expression *, int, int)
 
int parse_allow_deny (struct option_cache **, struct parse *, int)
 
int parse_auth_key (struct data_string *, struct parse *)
 
int parse_warn (struct parse *, const char *,...) __attribute__((__format__(__printf__
 
int struct expressionparse_domain_list (struct parse *cfile, int)
 
struct expressionparse_domain_name (struct parse *cfile)
 
pair cons (caddr_t, pair)
 
int make_const_option_cache (struct option_cache **, struct buffer **, u_int8_t *, unsigned, struct option *, const char *, int)
 
int make_host_lookup (struct expression **, const char *)
 
int enter_dns_host (struct dns_host_entry **, const char *)
 
int make_const_data (struct expression **, const unsigned char *, unsigned, int, int, const char *, int)
 
int make_const_int (struct expression **, unsigned long)
 
int make_concat (struct expression **, struct expression *, struct expression *)
 
int make_encapsulation (struct expression **, struct data_string *)
 
int make_substring (struct expression **, struct expression *, struct expression *, struct expression *)
 
int make_limit (struct expression **, struct expression *, int)
 
int make_let (struct executable_statement **, const char *)
 
int option_cache (struct option_cache **, struct data_string *, struct expression *, struct option *, const char *, int)
 
int evaluate_expression (struct binding_value **, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct expression *, const char *, int)
 
int binding_value_dereference (struct binding_value **, const char *, int)
 
int evaluate_boolean_expression (int *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct expression *)
 
int evaluate_data_expression (struct data_string *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct expression *, const char *, int)
 
int evaluate_numeric_expression (unsigned long *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct expression *)
 
int evaluate_option_cache (struct data_string *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct option_cache *, const char *, int)
 
int evaluate_boolean_option_cache (int *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct option_cache *, const char *, int)
 
int evaluate_boolean_expression_result (int *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct expression *)
 
void expression_dereference (struct expression **, const char *, int)
 
int is_dns_expression (struct expression *)
 
int is_boolean_expression (struct expression *)
 
int is_data_expression (struct expression *)
 
int is_numeric_expression (struct expression *)
 
int is_compound_expression (struct expression *)
 
int op_precedence (enum expr_op, enum expr_op)
 
enum expression_context expression_context (struct expression *)
 
enum expression_context op_context (enum expr_op)
 
int write_expression (FILE *, struct expression *, int, int, int)
 
struct bindingfind_binding (struct binding_scope *, const char *)
 
int free_bindings (struct binding_scope *, const char *, int)
 
int binding_scope_dereference (struct binding_scope **, const char *, int)
 
int fundef_dereference (struct fundef **, const char *, int)
 
int data_subexpression_length (int *, struct expression *)
 
int expr_valid_for_context (struct expression *, enum expression_context)
 
struct bindingcreate_binding (struct binding_scope **, const char *)
 
int bind_ds_value (struct binding_scope **, const char *, struct data_string *)
 
int find_bound_string (struct data_string *, struct binding_scope *, const char *)
 
int unset (struct binding_scope *, const char *)
 
int data_string_sprintfa (struct data_string *ds, const char *fmt,...)
 
int concat_dclists (struct data_string *, struct data_string *, struct data_string *)
 Adds two Dc-formatted lists into a single Dc-formatted list.
 
void dhcp (struct packet *)
 
void dhcpdiscover (struct packet *, int)
 
void dhcprequest (struct packet *, int, struct lease *)
 
void dhcprelease (struct packet *, int)
 
void dhcpdecline (struct packet *, int)
 
void dhcpinform (struct packet *, int)
 
void nak_lease (struct packet *, struct iaddr *cip, struct group *)
 Constructs and sends a DHCP Nak.
 
void ack_lease (struct packet *, struct lease *, unsigned int, TIME, char *, int, struct host_decl *)
 
void echo_client_id (struct packet *, struct lease *, struct option_state *, struct option_state *)
 Adds a dhcp-client-id option to a set of options Given a set of input options, it searches for echo-client-id. If it is defined and enabled, the given packet is searched for dhcp-client-id. If the option is found it is replicated into the given set of output options. This allows us to provide compliance with RFC 6842. It is called when we ack or nak a lease. In the latter case we may or may not have created the requisite scope to lookup echo-client-id.
 
void dhcp_reply (struct lease *)
 
int find_lease (struct lease **, struct packet *, struct shared_network *, int *, int *, struct lease *, const char *, int)
 
int mockup_lease (struct lease **, struct packet *, struct shared_network *, struct host_decl *)
 
void static_lease_dereference (struct lease *, const char *, int)
 
int allocate_lease (struct lease **, struct packet *, struct pool *, int *)
 
int permitted (struct packet *, struct permit *)
 
int locate_network (struct packet *)
 
int parse_agent_information_option (struct packet *, int, u_int8_t *)
 
unsigned cons_agent_information_options (struct option_state *, struct dhcp_packet *, unsigned, unsigned)
 
void get_server_source_address (struct in_addr *from, struct option_state *options, struct option_state *out_options, struct packet *packet)
 
void eval_network_statements (struct option_state **options, struct packet *packet, struct group *network_group)
 Builds option set from statements at the global and network scope.
 
u_int16_t dhcp_check_relayport (struct packet *packet)
 
void dhcpleasequery (struct packet *, int)
 
void dhcpv6_leasequery (struct data_string *, struct packet *)
 
isc_boolean_t server_duid_isset (void)
 
void copy_server_duid (struct data_string *ds, const char *file, int line)
 
void set_server_duid (struct data_string *new_duid)
 
isc_result_t set_server_duid_from_option (void)
 
void set_server_duid_type (int type)
 
isc_result_t generate_new_server_duid (void)
 
isc_result_t get_client_id (struct packet *, struct data_string *)
 
void dhcpv6 (struct packet *)
 
void bootp (struct packet *)
 
void use_host_decl_name (struct packet *, struct lease *, struct option_state *)
 Adds hostname option when use-host-decl-names is enabled.
 
isc_result_t delete_group (struct group_object *, int)
 
isc_result_t supersede_group (struct group_object *, int)
 
int clone_group (struct group **, struct group *, const char *, int)
 
int write_group (struct group_object *)
 
void relinquish_lease_hunks (void)
 
struct leasenew_leases (unsigned, const char *, int)
 
 OMAPI_OBJECT_ALLOC_DECL (shared_network, struct shared_network, dhcp_type_shared_network) OMAPI_OBJECT_ALLOC_DECL(dhcp_control
 
dhcp_type_control int option_chain_head_allocate (struct option_chain_head **, const char *, int)
 
int option_chain_head_reference (struct option_chain_head **, struct option_chain_head *, const char *, int)
 
int option_chain_head_dereference (struct option_chain_head **, const char *, int)
 
int group_allocate (struct group **, const char *, int)
 
int group_reference (struct group **, struct group *, const char *, int)
 
int group_dereference (struct group **, const char *, int)
 
struct dhcp_packetnew_dhcp_packet (const char *, int)
 
struct protocolnew_protocol (const char *, int)
 
struct lease_statenew_lease_state (const char *, int)
 
struct domain_search_listnew_domain_search_list (const char *, int)
 
struct name_servernew_name_server (const char *, int)
 
void free_name_server (struct name_server *, const char *, int)
 
struct optionnew_option (const char *, const char *, int)
 
int option_reference (struct option **dest, struct option *src, const char *file, int line)
 
int option_dereference (struct option **dest, const char *file, int line)
 
struct universenew_universe (const char *, int)
 
void free_universe (struct universe *, const char *, int)
 
void free_domain_search_list (struct domain_search_list *, const char *, int)
 
void free_lease_state (struct lease_state *, const char *, int)
 
void free_protocol (struct protocol *, const char *, int)
 
void free_dhcp_packet (struct dhcp_packet *, const char *, int)
 
struct client_leasenew_client_lease (const char *, int)
 
void free_client_lease (struct client_lease *, const char *, int)
 
struct permitnew_permit (const char *, int)
 
void free_permit (struct permit *, const char *, int)
 
pair new_pair (const char *, int)
 
void free_pair (pair, const char *, int)
 
int expression_allocate (struct expression **, const char *, int)
 
int expression_reference (struct expression **, struct expression *, const char *, int)
 
void free_expression (struct expression *, const char *, int)
 
int binding_value_allocate (struct binding_value **, const char *, int)
 
int binding_value_reference (struct binding_value **, struct binding_value *, const char *, int)
 
void free_binding_value (struct binding_value *, const char *, int)
 
int fundef_allocate (struct fundef **, const char *, int)
 
int fundef_reference (struct fundef **, struct fundef *, const char *, int)
 
int option_cache_allocate (struct option_cache **, const char *, int)
 
int option_cache_reference (struct option_cache **, struct option_cache *, const char *, int)
 
int buffer_allocate (struct buffer **, unsigned, const char *, int)
 
int buffer_reference (struct buffer **, struct buffer *, const char *, int)
 
int buffer_dereference (struct buffer **, const char *, int)
 
int dns_host_entry_allocate (struct dns_host_entry **, const char *, const char *, int)
 
int dns_host_entry_reference (struct dns_host_entry **, struct dns_host_entry *, const char *, int)
 
int dns_host_entry_dereference (struct dns_host_entry **, const char *, int)
 
int option_state_allocate (struct option_state **, const char *, int)
 
int option_state_reference (struct option_state **, struct option_state *, const char *, int)
 
int option_state_dereference (struct option_state **, const char *, int)
 
int data_string_new (struct data_string *, const char *, unsigned int, const char *, int)
 Constructs a null-terminated data_string from a char* and length.
 
void data_string_copy (struct data_string *, const struct data_string *, const char *, int)
 
void data_string_forget (struct data_string *, const char *, int)
 
void data_string_truncate (struct data_string *, int)
 
int data_string_terminate (struct data_string *, const char *, int)
 
int executable_statement_allocate (struct executable_statement **, const char *, int)
 
int executable_statement_reference (struct executable_statement **, struct executable_statement *, const char *, int)
 
int packet_allocate (struct packet **, const char *, int)
 
int packet_reference (struct packet **, struct packet *, const char *, int)
 
int packet_dereference (struct packet **, const char *, int)
 
int binding_scope_allocate (struct binding_scope **, const char *, int)
 
int binding_scope_reference (struct binding_scope **, struct binding_scope *, const char *, int)
 
int dns_zone_allocate (struct dns_zone **, const char *, int)
 
int dns_zone_reference (struct dns_zone **, struct dns_zone *, const char *, int)
 
char * quotify_string (const char *, const char *, int)
 
char * quotify_buf (const unsigned char *, unsigned, const char, const char *, int)
 
char * print_base64 (const unsigned char *, unsigned, const char *, int)
 
char * print_hw_addr (const int, const int, const unsigned char *)
 
void print_lease (struct lease *)
 
void dump_raw (const unsigned char *, unsigned)
 
void dump_packet_option (struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *)
 
void dump_packet (struct packet *)
 
void hash_dump (struct hash_table *)
 
char * print_hex (unsigned, const u_int8_t *, unsigned, unsigned)
 
void print_hex_only (unsigned, const u_int8_t *, unsigned, char *)
 
void print_hex_or_string (unsigned, const u_int8_t *, unsigned, char *)
 
char * print_dotted_quads (unsigned, const u_int8_t *)
 
char * print_dec_1 (unsigned long)
 
char * print_dec_2 (unsigned long)
 
void print_expression (const char *, struct expression *)
 
int token_print_indent_concat (FILE *, int, int, const char *, const char *,...)
 
int token_indent_data_string (FILE *, int, int, const char *, const char *, struct data_string *)
 
int token_print_indent (FILE *, int, int, const char *, const char *, const char *)
 
void indent_spaces (FILE *, int)
 
void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t)
 
const char * print_time (TIME)
 
void get_hw_addr (struct interface_info *info)
 
void try_hw_addr (struct interface_info *info)
 
isc_result_t get_hw_addr2 (struct interface_info *info)
 
char * buf_to_hex (const unsigned char *s, unsigned len, const char *file, int line)
 
char * format_lease_id (const unsigned char *s, unsigned len, int format, const char *file, int line)
 
char * absolute_path (const char *orgpath)
 
int if_register_socket (struct interface_info *, int, int *, struct in6_addr *)
 
void set_multicast_hop_limit (struct interface_info *info, int hop_limit)
 
void if_reinitialize_fallback (struct interface_info *)
 
void if_register_fallback (struct interface_info *)
 
ssize_t send_fallback (struct interface_info *, struct packet *, struct dhcp_packet *, size_t, struct in_addr, struct sockaddr_in *, struct hardware *)
 
ssize_t send_fallback6 (struct interface_info *, struct packet *, struct dhcp_packet *, size_t, struct in6_addr *, struct sockaddr_in6 *, struct hardware *)
 
ssize_t send_packet6 (struct interface_info *, const unsigned char *, size_t, struct sockaddr_in6 *)
 
isc_result_t fallback_discard (omapi_object_t *)
 
void if_register6 (struct interface_info *info, int do_multicast)
 
void if_register_linklocal6 (struct interface_info *info)
 
ssize_t receive_packet6 (struct interface_info *interface, unsigned char *buf, size_t len, struct sockaddr_in6 *from, struct in6_addr *to_addr, unsigned int *if_index)
 
void if_deregister6 (struct interface_info *info)
 
int if_register_lpf (struct interface_info *)
 
void if_reinitialize_send (struct interface_info *)
 
void if_register_send (struct interface_info *)
 
void if_deregister_send (struct interface_info *)
 
ssize_t send_packet (struct interface_info *, struct packet *, struct dhcp_packet *, size_t, struct in_addr, struct sockaddr_in *, struct hardware *)
 
void if_reinitialize_receive (struct interface_info *)
 
void if_register_receive (struct interface_info *)
 
void if_deregister_receive (struct interface_info *)
 
ssize_t receive_packet (struct interface_info *, unsigned char *, size_t, struct sockaddr_in *, struct hardware *)
 
int can_unicast_without_arp (struct interface_info *)
 
int can_receive_unicast_unconfigured (struct interface_info *)
 
int supports_multiple_interfaces (struct interface_info *)
 
void maybe_setup_fallback (void)
 
isc_result_t interface_setup (void)
 
void interface_trace_setup (void)
 
isc_result_t interface_initialize (omapi_object_t *, const char *, int)
 
void discover_interfaces (int)
 
int setup_fallback (struct interface_info **, const char *, int)
 
int if_readsocket (omapi_object_t *)
 
void reinitialize_interfaces (void)
 
void set_time (TIME)
 
struct timeval * process_outstanding_timeouts (struct timeval *)
 
void dispatch (void)
 
isc_result_t got_one (omapi_object_t *)
 
isc_result_t got_one_v6 (omapi_object_t *)
 
isc_result_t interface_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t interface_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t interface_destroy (omapi_object_t *, const char *, int)
 
isc_result_t interface_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t interface_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
void add_timeout (struct timeval *, void(*)(void *), void *, tvref_t, tvunref_t)
 
void cancel_timeout (void(*)(void *), void *)
 
void cancel_all_timeouts (void)
 
void relinquish_timeouts (void)
 
 OMAPI_OBJECT_ALLOC_DECL (interface, struct interface_info, dhcp_type_interface) extern char *default_option_format
 
void initialize_common_option_spaces (void)
 
void initialize_server_option_spaces (void)
 
struct iaddr subnet_number (struct iaddr, struct iaddr)
 
struct iaddr ip_addr (struct iaddr, struct iaddr, u_int32_t)
 
struct iaddr broadcast_addr (struct iaddr, struct iaddr)
 
u_int32_t host_addr (struct iaddr, struct iaddr)
 
int addr_eq (struct iaddr, struct iaddr)
 
int addr_match (struct iaddr *, struct iaddrmatch *)
 
int addr_cmp (const struct iaddr *a1, const struct iaddr *a2)
 
int addr_or (struct iaddr *result, const struct iaddr *a1, const struct iaddr *a2)
 
int addr_and (struct iaddr *result, const struct iaddr *a1, const struct iaddr *a2)
 
isc_boolean_t is_cidr_mask_valid (const struct iaddr *addr, int bits)
 
isc_result_t range2cidr (struct iaddrcidrnetlist **result, const struct iaddr *lo, const struct iaddr *hi)
 
isc_result_t free_iaddrcidrnetlist (struct iaddrcidrnetlist **result)
 
const char * piaddr (struct iaddr)
 
const char * pdestdesc (struct iaddr)
 
char * piaddrmask (struct iaddr *, struct iaddr *)
 
char * piaddrcidr (const struct iaddr *, unsigned int)
 
u_int16_t validate_port (char *)
 
u_int16_t validate_port_pair (char *)
 
const char * pin6_addr (const struct in6_addr *)
 
void dhcpoffer (struct packet *)
 
void dhcpack (struct packet *)
 
void dhcpnak (struct packet *)
 
void send_discover (void *)
 
void send_request (void *)
 
void send_release (void *)
 
void send_decline (void *)
 
void state_reboot (void *)
 
void state_init (void *)
 
void state_selecting (void *)
 
void state_requesting (void *)
 
void state_bound (void *)
 
void state_stop (void *)
 
void state_panic (void *)
 
uint32_t check_v6only (struct packet *, struct client_state *)
 
void start_v6only (struct client_state *, uint32_t)
 
void finish_v6only (void *)
 
void bind_lease (struct client_state *)
 
void make_client_options (struct client_state *, struct client_lease *, u_int8_t *, struct option_cache *, struct iaddr *, struct option **, struct option_state **)
 
void make_discover (struct client_state *, struct client_lease *)
 
void make_request (struct client_state *, struct client_lease *)
 
void make_decline (struct client_state *, struct client_lease *)
 
void make_release (struct client_state *, struct client_lease *)
 
void destroy_client_lease (struct client_lease *)
 
void rewrite_client_leases (void)
 
void write_lease_option (struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *)
 
int write_client_lease (struct client_state *, struct client_lease *, int, int)
 
isc_result_t write_client6_lease (struct client_state *client, struct dhc6_lease *lease, int rewrite, int sync)
 
int dhcp_option_ev_name (char *, size_t, struct option *)
 
void script_init (struct client_state *, const char *, struct string_list *)
 Initializes basic variables for a script.
 
void client_option_envadd (struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *)
 
void script_write_params (struct client_state *, const char *, struct client_lease *)
 Adds parameters to environment variables for a script.
 
void script_write_requested (struct client_state *)
 Write out the environent variable the client requested. Write out the environment variables for the objects that the client requested. If the object was requested the variable will be: requested_<option_name>=1 If it wasn't requested there won't be a variable.
 
int script_go (struct client_state *)
 Calls external script.
 
void client_envadd (struct client_state *, const char *, const char *, const char *,...) __attribute__((__format__(__printf__
 
void struct client_leasepacket_to_lease (struct packet *, struct client_state *)
 
void finish (char)
 
void detach (void)
 
void write_client_pid_file (void)
 
void client_location_changed (void)
 
void do_release (struct client_state *)
 
int dhclient_interface_shutdown_hook (struct interface_info *)
 
int dhclient_interface_discovery_hook (struct interface_info *)
 
isc_result_t dhclient_interface_startup_hook (struct interface_info *)
 
void dhclient_schedule_updates (struct client_state *client, struct iaddr *addr, int offset)
 
void client_dns_update_timeout (void *cp)
 
isc_result_t client_dns_update (struct client_state *client, dhcp_ddns_cb_t *ddns_cb)
 
void client_dns_remove (struct client_state *client, struct iaddr *addr)
 
void dhcpv4_client_assignments (void)
 
void dhcpv6_client_assignments (void)
 
isc_result_t form_duid (struct data_string *duid, const char *file, int line)
 
void dhcp4o6_start (void)
 
void dhc6_lease_destroy (struct dhc6_lease **src, const char *file, int line)
 
void start_init6 (struct client_state *client)
 
void start_info_request6 (struct client_state *client)
 
void start_confirm6 (struct client_state *client)
 
void start_release6 (struct client_state *client)
 
void start_selecting6 (struct client_state *client)
 
void unconfigure6 (struct client_state *client, const char *reason)
 
int write_lease (struct lease *)
 
int write_host (struct host_decl *)
 
int write_server_duid (void)
 
int write_failover_state (dhcp_failover_state_t *)
 
int db_printable (const unsigned char *)
 
int db_printable_len (const unsigned char *, unsigned)
 
isc_result_t write_named_billing_class (const void *, unsigned, void *)
 
void write_billing_classes (void)
 
int write_billing_class (struct class *)
 
void commit_leases_timeout (void *)
 
int commit_leases (void)
 
int commit_leases_timed (void)
 
void db_startup (int)
 
int new_lease_file (int test_mode)
 
int group_writer (struct group_object *)
 
int write_ia (const struct ia_xx *)
 
u_int32_t checksum (unsigned char *, unsigned, u_int32_t)
 
u_int32_t wrapsum (u_int32_t)
 
void assemble_hw_header (struct interface_info *, unsigned char *, unsigned *, struct hardware *)
 
void assemble_udp_ip_header (struct interface_info *, unsigned char *, unsigned *, u_int32_t, u_int32_t, u_int32_t, unsigned char *, unsigned)
 
ssize_t decode_hw_header (struct interface_info *, unsigned char *, unsigned, struct hardware *)
 
ssize_t decode_udp_ip_header (struct interface_info *, unsigned char *, unsigned, struct sockaddr_in *, unsigned, unsigned *, int)
 
void assemble_ethernet_header (struct interface_info *, unsigned char *, unsigned *, struct hardware *)
 
ssize_t decode_ethernet_header (struct interface_info *, unsigned char *, unsigned, struct hardware *)
 
void assemble_tr_header (struct interface_info *, unsigned char *, unsigned *, struct hardware *)
 
ssize_t decode_tr_header (struct interface_info *, unsigned char *, unsigned, struct hardware *)
 
void convert_statement (struct parse *)
 
void convert_host_statement (struct parse *, jrefproto)
 
void convert_host_name (struct parse *, jrefproto)
 
void convert_class_statement (struct parse *, jrefproto, int)
 
void convert_class_decl (struct parse *, jrefproto)
 
void convert_lease_time (struct parse *, jrefproto, char *)
 
void convert_shared_net_statement (struct parse *, jrefproto)
 
void convert_subnet_statement (struct parse *, jrefproto)
 
void convert_subnet_decl (struct parse *, jrefproto)
 
void convert_host_decl (struct parse *, jrefproto)
 
void convert_hardware_decl (struct parse *, jrefproto)
 
void convert_hardware_addr (struct parse *, jrefproto)
 
void convert_filename_decl (struct parse *, jrefproto)
 
void convert_servername_decl (struct parse *, jrefproto)
 
void convert_ip_addr_or_hostname (struct parse *, jrefproto, int)
 
void convert_fixed_addr_decl (struct parse *, jrefproto)
 
void convert_option_decl (struct parse *, jrefproto)
 
void convert_lease_statement (struct parse *, jrefproto)
 
void convert_address_range (struct parse *, jrefproto)
 
void convert_date (struct parse *, jrefproto, char *)
 
void convert_numeric_aggregate (struct parse *, jrefproto, int, int, int, int)
 
void indent (int)
 
void add_route_direct (struct interface_info *, struct in_addr)
 
void add_route_net (struct interface_info *, struct in_addr, struct in_addr)
 
void add_route_default_gateway (struct interface_info *, struct in_addr)
 
void remove_routes (struct in_addr)
 
void remove_if_route (struct interface_info *, struct in_addr)
 
void remove_all_if_routes (struct interface_info *)
 
void set_netmask (struct interface_info *, struct in_addr)
 
void set_broadcast_addr (struct interface_info *, struct in_addr)
 
void set_ip_address (struct interface_info *, struct in_addr)
 
isc_result_t read_client_conf (void)
 
int read_client_conf_file (const char *, struct interface_info *, struct client_config *)
 
void read_client_leases (void)
 
void read_client_duid (void)
 
void parse_client_statement (struct parse *, struct interface_info *, struct client_config *)
 
int parse_X (struct parse *, u_int8_t *, unsigned)
 
int parse_option_list (struct parse *, struct option ***)
 
void parse_interface_declaration (struct parse *, struct client_config *, char *)
 
int interface_or_dummy (struct interface_info **, const char *)
 
void make_client_state (struct client_state **)
 
void make_client_config (struct client_state *, struct client_config *)
 
void parse_client_lease_statement (struct parse *, int)
 
void parse_client_lease_declaration (struct parse *, struct client_lease *, struct interface_info **, struct client_state **)
 
int parse_option_decl (struct option_cache **, struct parse *)
 
void parse_string_list (struct parse *, struct string_list **, int)
 
int parse_ip_addr (struct parse *, struct iaddr *)
 
int parse_destination_descriptor (struct parse *, struct iaddr *)
 
int parse_ip_addr_with_subnet (struct parse *, struct iaddrmatch *)
 
void parse_reject_statement (struct parse *, struct client_config *)
 
void icmp_startup (int, void(*)(struct iaddr, u_int8_t *, int))
 
int icmp_readsocket (omapi_object_t *)
 
int icmp_echorequest (struct iaddr *)
 
isc_result_t icmp_echoreply (omapi_object_t *)
 
isc_result_t enter_dns_zone (struct dns_zone *)
 
isc_result_t dns_zone_lookup (struct dns_zone **, const char *)
 
int dns_zone_dereference (struct dns_zone **, const char *, int)
 
isc_result_t find_cached_zone (dhcp_ddns_cb_t *, int)
 
void forget_zone (struct dns_zone **)
 
void repudiate_zone (struct dns_zone **)
 
int get_dhcid (dhcp_ddns_cb_t *, int, const u_int8_t *, unsigned)
 
void dhcid_tolease (struct data_string *, struct data_string *)
 
isc_result_t dhcid_fromlease (struct data_string *, struct data_string *)
 
isc_result_t ddns_update_fwd (struct data_string *, struct iaddr, struct data_string *, unsigned long, unsigned, unsigned)
 
isc_result_t ddns_remove_fwd (struct data_string *, struct iaddr, struct data_string *)
 
char * ddns_state_name (int state)
 
dhcp_ddns_cb_tddns_cb_alloc (const char *file, int line)
 
void ddns_cb_free (dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
 
void ddns_cb_forget_zone (dhcp_ddns_cb_t *ddns_cb)
 
isc_result_t ddns_modify_fwd (dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
 
isc_result_t ddns_modify_ptr (dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
 
void ddns_cancel (dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
 
void read_resolv_conf (TIME)
 
struct name_serverfirst_name_server (void)
 
void classification_setup (void)
 
void classify_client (struct packet *)
 
int check_collection (struct packet *, struct lease *, struct collection *)
 
void classify (struct packet *, struct class *)
 
isc_result_t unlink_class (struct class **class)
 
isc_result_t find_class (struct class **, const char *, const char *, int)
 
void unbill_class (struct lease *)
 
int bill_class (struct lease *, struct class *)
 
int execute_statements (struct binding_value **result, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct executable_statement *, struct on_star *)
 
void execute_statements_in_scope (struct binding_value **result, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct group *, struct group *, struct on_star *)
 
int executable_statement_dereference (struct executable_statement **, const char *, int)
 
void write_statements (FILE *, struct executable_statement *, int)
 
int find_matching_case (struct executable_statement **, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct expression *, struct executable_statement *)
 
int executable_statement_foreach (struct executable_statement *, int(*)(struct executable_statement *, void *, int), void *, int)
 
void dhcp_common_objects_setup (void)
 
isc_result_t dhcp_group_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_group_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_group_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_group_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_group_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_group_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_group_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_group_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_control_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_control_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_control_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_control_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_control_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_control_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_control_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_control_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_subnet_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_subnet_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_subnet_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_subnet_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_subnet_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_subnet_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_subnet_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_subnet_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_shared_network_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_shared_network_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_shared_network_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_shared_network_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_shared_network_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_shared_network_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_shared_network_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_shared_network_remove (omapi_object_t *, omapi_object_t *)
 
void dhcp_db_objects_setup (void)
 
isc_result_t dhcp_lease_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_lease_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_lease_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_lease_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_lease_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_lease_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_lease_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_lease_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_host_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_host_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_host_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_host_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_host_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_host_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_host_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_host_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_pool_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_pool_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_pool_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_pool_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_pool_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_pool_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_pool_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_pool_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_class_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_class_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_class_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_class_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_class_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_class_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_class_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_class_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_subclass_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_subclass_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_subclass_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_subclass_signal_handler (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_subclass_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_subclass_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_subclass_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_subclass_remove (omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_interface_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_interface_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_interface_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_interface_signal_handler (omapi_object_t *, const char *, va_list ap)
 
isc_result_t dhcp_interface_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_interface_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_interface_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_interface_remove (omapi_object_t *, omapi_object_t *)
 
void interface_stash (struct interface_info *)
 
void interface_snorf (struct interface_info *, int)
 
isc_result_t binding_scope_set_value (struct binding_scope *, int, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t binding_scope_get_value (omapi_value_t **, struct binding_scope *, omapi_data_string_t *)
 
isc_result_t binding_scope_stuff_values (omapi_object_t *, struct binding_scope *)
 
void register_eventhandler (struct eventqueue **, void(*handler)(void *))
 
void unregister_eventhandler (struct eventqueue **, void(*handler)(void *))
 
void trigger_event (struct eventqueue **)
 
isc_result_t enter_class (struct class *, int, int)
 
isc_result_t delete_class (struct class *, int)
 
isc_result_t enter_host (struct host_decl *, int, int)
 
isc_result_t delete_host (struct host_decl *, int)
 
void change_host_uid (struct host_decl *host, const char *data, int len)
 
int find_hosts_by_haddr (struct host_decl **, int, const unsigned char *, unsigned, const char *, int)
 
int find_hosts_by_uid (struct host_decl **, const unsigned char *, unsigned, const char *, int)
 
int find_hosts_by_option (struct host_decl **, struct packet *, struct option_state *, const char *, int)
 
int find_host_for_network (struct subnet **, struct host_decl **, struct iaddr *, struct shared_network *)
 
void new_address_range (struct parse *, struct iaddr, struct iaddr, struct subnet *, struct pool *, struct lease **)
 
isc_result_t dhcp_lease_free (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_lease_get (omapi_object_t **, const char *, int)
 
int find_grouped_subnet (struct subnet **, struct shared_network *, struct iaddr, const char *, int)
 
int find_subnet (struct subnet **, struct iaddr, const char *, int)
 
void enter_shared_network (struct shared_network *)
 
void new_shared_network_interface (struct parse *, struct shared_network *, const char *)
 
int subnet_inner_than (const struct subnet *, const struct subnet *, int)
 
void enter_subnet (struct subnet *)
 
void enter_lease (struct lease *)
 
int supersede_lease (struct lease *, struct lease *, int, int, int, int)
 
void make_binding_state_transition (struct lease *)
 
int lease_copy (struct lease **, struct lease *, const char *, int)
 
void release_lease (struct lease *, struct packet *)
 
void abandon_lease (struct lease *, const char *)
 
void pool_timer (void *)
 
int find_lease_by_uid (struct lease **, const unsigned char *, unsigned, const char *, int)
 
int find_lease_by_hw_addr (struct lease **, const unsigned char *, unsigned, const char *, int)
 
int find_lease_by_ip_addr (struct lease **, struct iaddr, const char *, int)
 
void uid_hash_add (struct lease *)
 
void uid_hash_delete (struct lease *)
 
void hw_hash_add (struct lease *)
 
void hw_hash_delete (struct lease *)
 
int write_leases (void)
 
int write_leases6 (void)
 
int lease_enqueue (struct lease *)
 
isc_result_t lease_instantiate (const void *, unsigned, void *)
 
void expire_all_pools (void)
 
void dump_subnets (void)
 
void dhcp_failover_sanity_check (void)
 
void dhcp_failover_startup (void)
 
int dhcp_failover_write_all_states (void)
 
isc_result_t enter_failover_peer (dhcp_failover_state_t *)
 
isc_result_t find_failover_peer (dhcp_failover_state_t **, const char *, const char *, int)
 
isc_result_t dhcp_failover_link_initiate (omapi_object_t *)
 
isc_result_t dhcp_failover_link_signal (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_failover_link_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_failover_link_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_failover_link_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_failover_link_stuff_values (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_failover_listen (omapi_object_t *)
 
isc_result_t dhcp_failover_listener_signal (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_failover_listener_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
isc_result_t dhcp_failover_listener_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_failover_listener_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_failover_listener_stuff (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_failover_register (omapi_object_t *)
 
isc_result_t dhcp_failover_state_signal (omapi_object_t *, const char *, va_list)
 
isc_result_t dhcp_failover_state_transition (dhcp_failover_state_t *, const char *)
 
isc_result_t dhcp_failover_set_service_state (dhcp_failover_state_t *state)
 
void dhcp_failover_rescind_updates (dhcp_failover_state_t *)
 
isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *, enum failover_state)
 
isc_result_t dhcp_failover_peer_state_changed (dhcp_failover_state_t *, failover_message_t *)
 
void dhcp_failover_pool_rebalance (void *)
 
void dhcp_failover_pool_check (struct pool *)
 
int dhcp_failover_state_pool_check (dhcp_failover_state_t *)
 
void dhcp_failover_timeout (void *)
 
void dhcp_failover_send_contact (void *)
 
isc_result_t dhcp_failover_send_state (dhcp_failover_state_t *)
 
isc_result_t dhcp_failover_send_updates (dhcp_failover_state_t *)
 
int dhcp_failover_queue_update (struct lease *, int)
 
int dhcp_failover_send_acks (dhcp_failover_state_t *)
 
void dhcp_failover_toack_queue_timeout (void *)
 
int dhcp_failover_queue_ack (dhcp_failover_state_t *, failover_message_t *msg)
 
void dhcp_failover_ack_queue_remove (dhcp_failover_state_t *, struct lease *)
 
isc_result_t dhcp_failover_state_set_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
 
void dhcp_failover_keepalive (void *)
 
void dhcp_failover_reconnect (void *)
 
void dhcp_failover_startup_timeout (void *)
 
void dhcp_failover_link_startup_timeout (void *)
 
void dhcp_failover_listener_restart (void *)
 
void dhcp_failover_auto_partner_down (void *vs)
 
isc_result_t dhcp_failover_state_get_value (omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
 
isc_result_t dhcp_failover_state_destroy (omapi_object_t *, const char *, int)
 
isc_result_t dhcp_failover_state_stuff (omapi_object_t *, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_failover_state_lookup (omapi_object_t **, omapi_object_t *, omapi_object_t *)
 
isc_result_t dhcp_failover_state_create (omapi_object_t **, omapi_object_t *)
 
isc_result_t dhcp_failover_state_remove (omapi_object_t *, omapi_object_t *)
 
int dhcp_failover_state_match (dhcp_failover_state_t *, u_int8_t *, unsigned)
 
int dhcp_failover_state_match_by_name (dhcp_failover_state_t *, failover_option_t *)
 
const char * dhcp_failover_reject_reason_print (int)
 
const char * dhcp_failover_state_name_print (enum failover_state)
 
const char * dhcp_failover_message_name (unsigned)
 
const char * dhcp_failover_option_name (unsigned)
 
failover_option_t * dhcp_failover_option_printf (unsigned, char *, unsigned *, unsigned, const char *,...) __attribute__((__format__(__printf__
 
failover_option_t failover_option_t * dhcp_failover_make_option (unsigned, char *, unsigned *, unsigned,...)
 
isc_result_t dhcp_failover_put_message (dhcp_failover_link_t *, omapi_object_t *, int, u_int32_t,...)
 
isc_result_t dhcp_failover_send_connect (omapi_object_t *)
 
isc_result_t dhcp_failover_send_connectack (omapi_object_t *, dhcp_failover_state_t *, int, const char *)
 
isc_result_t dhcp_failover_send_disconnect (omapi_object_t *, int, const char *)
 
isc_result_t dhcp_failover_send_bind_update (dhcp_failover_state_t *, struct lease *)
 
isc_result_t dhcp_failover_send_bind_ack (dhcp_failover_state_t *, failover_message_t *, int, const char *)
 
isc_result_t dhcp_failover_send_poolreq (dhcp_failover_state_t *)
 
isc_result_t dhcp_failover_send_poolresp (dhcp_failover_state_t *, int)
 
isc_result_t dhcp_failover_send_update_request (dhcp_failover_state_t *)
 
isc_result_t dhcp_failover_send_update_request_all (dhcp_failover_state_t *)
 
isc_result_t dhcp_failover_send_update_done (dhcp_failover_state_t *)
 
isc_result_t dhcp_failover_process_bind_update (dhcp_failover_state_t *, failover_message_t *)
 
isc_result_t dhcp_failover_process_bind_ack (dhcp_failover_state_t *, failover_message_t *)
 
isc_result_t dhcp_failover_generate_update_queue (dhcp_failover_state_t *, int)
 
isc_result_t dhcp_failover_process_update_request (dhcp_failover_state_t *, failover_message_t *)
 
isc_result_t dhcp_failover_process_update_request_all (dhcp_failover_state_t *, failover_message_t *)
 
isc_result_t dhcp_failover_process_update_done (dhcp_failover_state_t *, failover_message_t *)
 
void ia_remove_all_lease (struct ia_xx *ia, const char *file, int line)
 
void dhcp_failover_recover_done (void *)
 
void failover_print (char *, unsigned *, unsigned, const char *)
 
void update_partner (struct lease *)
 
int load_balance_mine (struct packet *, dhcp_failover_state_t *)
 
int peer_wants_lease (struct lease *)
 
binding_state_t normal_binding_state_transition_check (struct lease *, dhcp_failover_state_t *, binding_state_t, u_int32_t)
 
binding_state_t conflict_binding_state_transition_check (struct lease *, dhcp_failover_state_t *, binding_state_t, u_int32_t)
 
int lease_mine_to_reallocate (struct lease *)
 
 OMAPI_OBJECT_ALLOC_DECL (dhcp_failover_state, dhcp_failover_state_t, dhcp_type_failover_state) OMAPI_OBJECT_ALLOC_DECL(dhcp_failover_listener
 
dhcp_type_failover_listener OMAPI_OBJECT_ALLOC_DECL (dhcp_failover_link, dhcp_failover_link_t, dhcp_type_failover_link) const char *binding_state_print(enum failover_state)
 
 HASH_FUNCTIONS_DECL (iasubopt, struct in6_addr *, struct iasubopt, iasubopt_hash_t) isc_result_t iasubopt_allocate(struct iasubopt **iasubopt
 
isc_result_t iasubopt_reference (struct iasubopt **iasubopt, struct iasubopt *src, const char *file, int line)
 
isc_result_t iasubopt_dereference (struct iasubopt **iasubopt, const char *file, int line)
 
isc_result_t ia_make_key (struct data_string *key, u_int32_t iaid, const char *duid, unsigned int duid_len, const char *file, int line)
 
isc_result_t ia_allocate (struct ia_xx **ia, u_int32_t iaid, const char *duid, unsigned int duid_len, const char *file, int line)
 
isc_result_t ia_reference (struct ia_xx **ia, struct ia_xx *src, const char *file, int line)
 
isc_result_t ia_dereference (struct ia_xx **ia, const char *file, int line)
 
isc_result_t ia_add_iasubopt (struct ia_xx *ia, struct iasubopt *iasubopt, const char *file, int line)
 
void ia_remove_iasubopt (struct ia_xx *ia, struct iasubopt *iasubopt, const char *file, int line)
 
isc_boolean_t ia_equal (const struct ia_xx *a, const struct ia_xx *b)
 
isc_result_t ipv6_pool_allocate (struct ipv6_pool **pool, u_int16_t type, const struct in6_addr *start_addr, int bits, int units, const char *file, int line)
 Create a new IPv6 lease pool structure.
 
isc_result_t ipv6_pool_reference (struct ipv6_pool **pool, struct ipv6_pool *src, const char *file, int line)
 reference an IPv6 pool structure.
 
isc_result_t ipv6_pool_dereference (struct ipv6_pool **pool, const char *file, int line)
 de-reference an IPv6 pool structure.
 
isc_result_t create_lease6 (struct ipv6_pool *pool, struct iasubopt **addr, unsigned int *attempts, const struct data_string *uid, time_t soft_lifetime_end_time)
 
isc_result_t add_lease6 (struct ipv6_pool *pool, struct iasubopt *lease, time_t valid_lifetime_end_time)
 
isc_result_t renew_lease6 (struct ipv6_pool *pool, struct iasubopt *lease)
 Renew a lease in the pool.
 
isc_result_t expire_lease6 (struct iasubopt **leasep, struct ipv6_pool *pool, time_t now)
 
isc_result_t release_lease6 (struct ipv6_pool *pool, struct iasubopt *lease)
 
isc_result_t decline_lease6 (struct ipv6_pool *pool, struct iasubopt *lease)
 
isc_boolean_t lease6_exists (const struct ipv6_pool *pool, const struct in6_addr *addr)
 
isc_boolean_t lease6_usable (struct iasubopt *lease)
 Check if address is available to a lease.
 
isc_result_t cleanup_lease6 (ia_hash_t *ia_table, struct ipv6_pool *pool, struct iasubopt *lease, struct ia_xx *ia)
 Cleans up leases when reading from a lease file.
 
isc_result_t mark_lease_unavailble (struct ipv6_pool *pool, const struct in6_addr *addr)
 
isc_result_t create_prefix6 (struct ipv6_pool *pool, struct iasubopt **pref, unsigned int *attempts, const struct data_string *uid, time_t soft_lifetime_end_time)
 
isc_boolean_t prefix6_exists (const struct ipv6_pool *pool, const struct in6_addr *pref, u_int8_t plen)
 
isc_result_t add_ipv6_pool (struct ipv6_pool *pool)
 
isc_result_t find_ipv6_pool (struct ipv6_pool **pool, u_int16_t type, const struct in6_addr *addr)
 
isc_boolean_t ipv6_in_pool (const struct in6_addr *addr, const struct ipv6_pool *pool)
 
isc_result_t ipv6_pond_allocate (struct ipv6_pond **pond, const char *file, int line)
 Create a new IPv6 pond structure.
 
isc_result_t ipv6_pond_reference (struct ipv6_pond **pond, struct ipv6_pond *src, const char *file, int line)
 reference an IPv6 pond structure.
 
isc_result_t ipv6_pond_dereference (struct ipv6_pond **pond, const char *file, int line)
 de-reference an IPv6 pond structure.
 
isc_result_t renew_leases (struct ia_xx *ia)
 
isc_result_t release_leases (struct ia_xx *ia)
 
isc_result_t decline_leases (struct ia_xx *ia)
 
void schedule_lease_timeout (struct ipv6_pool *pool)
 
void schedule_all_ipv6_lease_timeouts ()
 
void mark_hosts_unavailable (void)
 
void mark_phosts_unavailable (void)
 
void mark_interfaces_unavailable (void)
 
void report_jumbo_ranges ()
 
int find_hosts6 (struct host_decl **host, struct packet *packet, const struct data_string *client_id, char *file, int line)
 
int lc_not_empty (struct leasechain *lc)
 
void lc_add_sorted_lease (struct leasechain *lc, struct lease *lp)
 
void lc_unlink_lease (struct leasechain *lc, struct lease *lp)
 
struct leaselc_get_first_lease (struct leasechain *lc)
 
struct leaselc_get_next (struct leasechain *lc, struct lease *lp)
 
void lc_init_growth (struct leasechain *lc, size_t growth)
 
void lc_delete_all (struct leasechain *lc)
 

Variables

ia_hash_tia_na_active
 
ia_hash_tia_ta_active
 
ia_hash_tia_pd_active
 
struct ipv6_pool ** pools
 
lease_id_hash_t extern struct optionvendor_cfg_option
 
struct timeval cur_tv
 
int ddns_update_style
 
u_int16_t ddns_conflict_mask
 
int dont_use_fsync
 
int server_id_check
 
int prefix_length_mode
 
int do_release_on_roam
 
int authoring_byte_order
 
int lease_id_format
 
u_int32_t abandon_lease_time
 
const char * path_dhcpd_conf
 
const char * path_dhcpd_db
 
const char * path_dhcpd_pid
 
int dhcp_max_agent_option_packet_length
 
struct eventqueuerw_queue_empty
 
uid_t set_uid
 
gid_t set_gid
 
enum dhcp_shutdown_state shutdown_state
 
struct binding_scopeglobal_scope
 
int outstanding_pings
 
int max_outstanding_acks
 
int max_ack_delay_secs
 
int max_ack_delay_usecs
 
int(* group_write_hook )(struct group_object *)
 
struct grouproot_group
 
group_hash_tgroup_name_hash
 
 dhcp_control_object_t
 
int db_time_format
 
struct interface_infointerfaces
 
struct interface_infodummy_interfaces
 
struct interface_infofallback_interface
 
struct protocolprotocols
 
int quiet_interface_discovery
 
struct in_addr limited_broadcast
 
int local_family
 
struct in_addr local_address
 
struct in6_addr local_address6
 
int bind_local_address6
 
u_int16_t local_port
 
u_int16_t remote_port
 
u_int16_t relay_port
 
int dhcpv4_over_dhcpv6
 
int(* dhcp_interface_setup_hook )(struct interface_info *, struct iaddr *)
 
int(* dhcp_interface_discovery_hook )(struct interface_info *)
 
isc_result_t(* dhcp_interface_startup_hook )(struct interface_info *)
 
void(* bootp_packet_handler )(struct interface_info *, struct dhcp_packet *, unsigned, unsigned int, struct iaddr, struct hardware *)
 
void(* dhcpv6_packet_handler )(struct interface_info *, const char *, int, int, const struct iaddr *, isc_boolean_t)
 
struct timeouttimeouts
 
omapi_object_type_tdhcp_type_interface
 
trace_type_tinterface_trace
 
trace_type_tinpacket_trace
 
trace_type_toutpacket_trace
 
struct interface_info ** interface_vector
 
int interface_count
 
int interface_max
 
struct universe dhcp_universe
 
struct universe dhcpv6_universe
 
struct universe nwip_universe
 
struct universe fqdn_universe
 
struct universe vsio_universe
 
int dhcp_option_default_priority_list []
 
int dhcp_option_default_priority_list_count
 
const char * hardware_types [256]
 
int universe_count
 
int universe_max
 
struct universe ** universes
 
universe_hash_tuniverse_hash
 
struct universeconfig_universe
 
failover_option_t null_failover_option
 
failover_option_t skip_failover_option
 
struct failover_option_info ft_options []
 
u_int32_t fto_allowed []
 
int ft_sizes []
 
const char * dhcp_flink_state_names []
 
const char * binding_state_names []
 
struct universe agent_universe
 
struct universe server_universe
 
struct enumeration ddns_styles
 
struct enumeration syslog_enum
 
struct enumeration prefix_length_modes
 
int nowait
 
int wanted_ia_na
 
int wanted_ia_ta
 
int wanted_ia_pd
 
int require_all_ias
 
const char * path_dhclient_conf
 
const char * path_dhclient_db
 
const char * path_dhclient_pid
 
char * path_dhclient_script
 
int interfaces_requested
 
struct data_string default_duid
 
int duid_type
 
const char * path_dhclient_duid
 
struct client_config top_level_config
 
struct icmp_state * icmp_state
 
char path_resolv_conf []
 
struct name_servername_servers
 
struct domain_search_listdomains
 
int have_billing_classes
 
struct class unknown_class
 
struct class known_class
 
struct collection default_collection
 
struct collectioncollections
 
struct executable_statementdefault_classification_rules
 
omapi_object_type_tdhcp_type_group
 
omapi_object_type_tdhcp_type_shared_network
 
omapi_object_type_tdhcp_type_subnet
 
omapi_object_type_tdhcp_type_control
 
dhcp_control_object_tdhcp_control_object
 
int(* dhcp_interface_shutdown_hook )(struct interface_info *)
 
omapi_object_type_tdhcp_type_lease
 
omapi_object_type_tdhcp_type_pool
 
omapi_object_type_tdhcp_type_class
 
omapi_object_type_tdhcp_type_subclass
 
omapi_object_type_tdhcp_type_failover_state
 
omapi_object_type_tdhcp_type_failover_link
 
omapi_object_type_tdhcp_type_failover_listener
 
struct subnetsubnets
 
struct shared_networkshared_networks
 
host_hash_thost_hw_addr_hash
 
host_hash_thost_uid_hash
 
host_hash_thost_name_hash
 
lease_id_hash_tlease_uid_hash
 
lease_ip_hash_tlease_ip_addr_hash
 
lease_id_hash_tlease_hw_addr_hash
 
omapi_object_type_tdhcp_type_host
 
int numclasseswritten
 
dhcp_failover_state_t * failover_states
 
 dhcp_failover_listener_t
 
const char * file
 
const char int line
 

Macro Definition Documentation

◆ _PATH_DHCLIENT_CONF

#define _PATH_DHCLIENT_CONF   "/etc/dhcp/dhclient.conf"

Definition at line 1591 of file dhcpd.h.

◆ _PATH_DHCLIENT_SCRIPT

#define _PATH_DHCLIENT_SCRIPT   "/usr/sbin/dhclient-script"

Definition at line 1595 of file dhcpd.h.

◆ _PATH_DHCPD_CONF

#define _PATH_DHCPD_CONF   "/etc/dhcp/dhcpd.conf"

Definition at line 1569 of file dhcpd.h.

◆ _PATH_DHCRELAY6_PID

#define _PATH_DHCRELAY6_PID   LOCALSTATEDIR"/run/dhcrelay6.pid"

Definition at line 1623 of file dhcpd.h.

◆ _PATH_RESOLV_CONF

#define _PATH_RESOLV_CONF   "/etc/resolv.conf"

Definition at line 1615 of file dhcpd.h.

◆ AGENT_HASH_SIZE

#define AGENT_HASH_SIZE   11 /* A really small table. */

Definition at line 207 of file dhcpd.h.

◆ BOOTP_LEASE

#define BOOTP_LEASE   2

Definition at line 593 of file dhcpd.h.

◆ BYTE_CODE_HASH_SIZE

#define BYTE_CODE_HASH_SIZE   254 /* Default would be ridiculous. */

Definition at line 112 of file dhcpd.h.

◆ BYTE_NAME_HASH_SIZE

#define BYTE_NAME_HASH_SIZE   401 /* Default would be ridiculous. */

Definition at line 109 of file dhcpd.h.

◆ CL_BACKOFF_CUTOFF

#define CL_BACKOFF_CUTOFF   5

Definition at line 900 of file dhcpd.h.

◆ CL_BOOTP_POLICY

#define CL_BOOTP_POLICY   7

Definition at line 902 of file dhcpd.h.

◆ CL_DEFAULT_BACKOFF_CUTOFF

#define CL_DEFAULT_BACKOFF_CUTOFF   120

Definition at line 927 of file dhcpd.h.

◆ CL_DEFAULT_BOOTP_POLICY

#define CL_DEFAULT_BOOTP_POLICY   P_ACCEPT

Definition at line 935 of file dhcpd.h.

◆ CL_DEFAULT_INITIAL_INTERVAL

#define CL_DEFAULT_INITIAL_INTERVAL   10

Definition at line 931 of file dhcpd.h.

◆ CL_DEFAULT_REBOOT_TIMEOUT

#define CL_DEFAULT_REBOOT_TIMEOUT   10

Definition at line 919 of file dhcpd.h.

◆ CL_DEFAULT_REQUESTED_OPTIONS

#define CL_DEFAULT_REQUESTED_OPTIONS
Value:
#define DHO_HOST_NAME
Definition dhcp.h:101
#define DHO_BROADCAST_ADDRESS
Definition dhcp.h:117
#define DHO_TIME_OFFSET
Definition dhcp.h:91
#define DHO_DOMAIN_NAME
Definition dhcp.h:104
#define DHO_DOMAIN_NAME_SERVERS
Definition dhcp.h:95
#define DHO_ROUTERS
Definition dhcp.h:92
#define DHO_SUBNET_MASK
Definition dhcp.h:90

Definition at line 939 of file dhcpd.h.

◆ CL_DEFAULT_RETRY_INTERVAL

#define CL_DEFAULT_RETRY_INTERVAL   300

Definition at line 923 of file dhcpd.h.

◆ CL_DEFAULT_SELECT_INTERVAL

#define CL_DEFAULT_SELECT_INTERVAL   0

Definition at line 915 of file dhcpd.h.

◆ CL_DEFAULT_TIMEOUT

#define CL_DEFAULT_TIMEOUT   60

Definition at line 911 of file dhcpd.h.

◆ CL_INITIAL_INTERVAL

#define CL_INITIAL_INTERVAL   6

Definition at line 901 of file dhcpd.h.

◆ CL_MEDIA

#define CL_MEDIA   12

Definition at line 907 of file dhcpd.h.

◆ CL_REBOOT_TIMEOUT

#define CL_REBOOT_TIMEOUT   3

Definition at line 898 of file dhcpd.h.

◆ CL_REJECT_LIST

#define CL_REJECT_LIST   13

Definition at line 908 of file dhcpd.h.

◆ CL_REQUESTED_LEASE_TIME

#define CL_REQUESTED_LEASE_TIME   10

Definition at line 905 of file dhcpd.h.

◆ CL_REQUESTED_OPTIONS

#define CL_REQUESTED_OPTIONS   9

Definition at line 904 of file dhcpd.h.

◆ CL_RETRY_INTERVAL

#define CL_RETRY_INTERVAL   4

Definition at line 899 of file dhcpd.h.

◆ CL_SCRIPT_NAME

#define CL_SCRIPT_NAME   8

Definition at line 903 of file dhcpd.h.

◆ CL_SELECT_INTERVAL

#define CL_SELECT_INTERVAL   2

Definition at line 897 of file dhcpd.h.

◆ CL_SEND_OPTIONS

#define CL_SEND_OPTIONS   11

Definition at line 906 of file dhcpd.h.

◆ CL_TIMEOUT

#define CL_TIMEOUT   1

Definition at line 896 of file dhcpd.h.

◆ CLASS_DECL

#define CLASS_DECL   4

Definition at line 690 of file dhcpd.h.

◆ CLASS_DECL_DELETED

#define CLASS_DECL_DELETED   1

Definition at line 1134 of file dhcpd.h.

◆ CLASS_DECL_DYNAMIC

#define CLASS_DECL_DYNAMIC   2

Definition at line 1135 of file dhcpd.h.

◆ CLASS_DECL_STATIC

#define CLASS_DECL_STATIC   4

Definition at line 1136 of file dhcpd.h.

◆ CLASS_DECL_SUBCLASS

#define CLASS_DECL_SUBCLASS   8

Definition at line 1137 of file dhcpd.h.

◆ CLASS_TYPE_CLASS

#define CLASS_TYPE_CLASS   2

Definition at line 1098 of file dhcpd.h.

◆ CLASS_TYPE_SUBCLASS

#define CLASS_TYPE_SUBCLASS   3

Definition at line 1099 of file dhcpd.h.

◆ CLASS_TYPE_USER

#define CLASS_TYPE_USER   1

Definition at line 1097 of file dhcpd.h.

◆ CLASS_TYPE_VENDOR

#define CLASS_TYPE_VENDOR   0

Definition at line 1096 of file dhcpd.h.

◆ compute_option_hash

#define compute_option_hash ( x)
Value:
(((x) & (OPTION_HASH_PTWO - 1)) + \
(((x) >> OPTION_HASH_EXP) & \
#define OPTION_HASH_PTWO
Definition dhcpd.h:224
#define OPTION_HASH_SIZE
Definition dhcpd.h:223
#define OPTION_HASH_EXP
Definition dhcpd.h:225

Definition at line 228 of file dhcpd.h.

◆ CONFLICT_BITS

#define CONFLICT_BITS
Value:
#define DDNS_GUARD_ID_MUST_MATCH
Definition dhcpd.h:1787
#define DDNS_OTHER_GUARD_IS_DYNAMIC
Definition dhcpd.h:1788
#define DDNS_CONFLICT_DETECTION
Definition dhcpd.h:1780
#define DDNS_DUAL_STACK_MIXED_MODE
Definition dhcpd.h:1786

Definition at line 1790 of file dhcpd.h.

◆ cur_time

#define cur_time   cur_tv.tv_sec

Definition at line 2126 of file dhcpd.h.

◆ DDNS_ABORT

#define DDNS_ABORT   0x0040

Definition at line 1783 of file dhcpd.h.

◆ DDNS_ACTIVE_LEASE

#define DDNS_ACTIVE_LEASE   0x0100

Definition at line 1785 of file dhcpd.h.

◆ DDNS_CLIENT_DID_UPDATE

#define DDNS_CLIENT_DID_UPDATE   0x0010

Definition at line 1781 of file dhcpd.h.

◆ DDNS_CONFLICT_DETECTION

#define DDNS_CONFLICT_DETECTION   0x0008

Definition at line 1780 of file dhcpd.h.

◆ DDNS_DUAL_STACK_MIXED_MODE

#define DDNS_DUAL_STACK_MIXED_MODE   0x0200

Definition at line 1786 of file dhcpd.h.

◆ DDNS_EXECUTE_NEXT

#define DDNS_EXECUTE_NEXT   0x0020

Definition at line 1782 of file dhcpd.h.

◆ DDNS_GUARD_ID_MUST_MATCH

#define DDNS_GUARD_ID_MUST_MATCH   0x0400

Definition at line 1787 of file dhcpd.h.

◆ DDNS_INCLUDE_RRSET

#define DDNS_INCLUDE_RRSET   0x0004

Definition at line 1779 of file dhcpd.h.

◆ DDNS_OTHER_GUARD_IS_DYNAMIC

#define DDNS_OTHER_GUARD_IS_DYNAMIC   0x0800

Definition at line 1788 of file dhcpd.h.

◆ DDNS_PRINT_INBOUND

#define DDNS_PRINT_INBOUND   1

Definition at line 1811 of file dhcpd.h.

◆ DDNS_PRINT_OUTBOUND

#define DDNS_PRINT_OUTBOUND   0

Definition at line 1812 of file dhcpd.h.

◆ DDNS_STATE_ADD_FW_NXDOMAIN

#define DDNS_STATE_ADD_FW_NXDOMAIN   1

Definition at line 1798 of file dhcpd.h.

◆ DDNS_STATE_ADD_FW_YXDHCID

#define DDNS_STATE_ADD_FW_YXDHCID   2

Definition at line 1799 of file dhcpd.h.

◆ DDNS_STATE_ADD_PTR

#define DDNS_STATE_ADD_PTR   3

Definition at line 1800 of file dhcpd.h.

◆ DDNS_STATE_CLEANUP

#define DDNS_STATE_CLEANUP   0 /* startup or the previous step failed, cleanup */

Definition at line 1796 of file dhcpd.h.

◆ DDNS_STATE_DSMM_FW_ADD3

#define DDNS_STATE_DSMM_FW_ADD3   4

Definition at line 1801 of file dhcpd.h.

◆ DDNS_STATE_REM_FW_DSMM_OTHER

#define DDNS_STATE_REM_FW_DSMM_OTHER   20

Definition at line 1806 of file dhcpd.h.

◆ DDNS_STATE_REM_FW_NXRR

#define DDNS_STATE_REM_FW_NXRR   18

Definition at line 1804 of file dhcpd.h.

◆ DDNS_STATE_REM_FW_YXDHCID

#define DDNS_STATE_REM_FW_YXDHCID   17

Definition at line 1803 of file dhcpd.h.

◆ DDNS_STATE_REM_PTR

#define DDNS_STATE_REM_PTR   19

Definition at line 1805 of file dhcpd.h.

◆ DDNS_STATIC_LEASE

#define DDNS_STATIC_LEASE   0x0080

Definition at line 1784 of file dhcpd.h.

◆ DDNS_UPDATE_ADDR

#define DDNS_UPDATE_ADDR   0x0001

Definition at line 1777 of file dhcpd.h.

◆ DDNS_UPDATE_PTR

#define DDNS_UPDATE_PTR   0x0002

Definition at line 1778 of file dhcpd.h.

◆ DDNS_UPDATE_STYLE_AD_HOC

#define DDNS_UPDATE_STYLE_AD_HOC   1

Definition at line 705 of file dhcpd.h.

◆ DDNS_UPDATE_STYLE_INTERIM

#define DDNS_UPDATE_STYLE_INTERIM   2

Definition at line 706 of file dhcpd.h.

◆ DDNS_UPDATE_STYLE_NONE

#define DDNS_UPDATE_STYLE_NONE   0

Definition at line 704 of file dhcpd.h.

◆ DDNS_UPDATE_STYLE_STANDARD

#define DDNS_UPDATE_STYLE_STANDARD   3

Definition at line 707 of file dhcpd.h.

◆ DEFAULT_ABANDON_LEASE_TIME

#define DEFAULT_ABANDON_LEASE_TIME   86400

Definition at line 881 of file dhcpd.h.

◆ DEFAULT_ACK_DELAY_SECS

#define DEFAULT_ACK_DELAY_SECS   0

Definition at line 842 of file dhcpd.h.

◆ DEFAULT_ACK_DELAY_USECS

#define DEFAULT_ACK_DELAY_USECS   250000 /* 1/4 of a second */

Definition at line 846 of file dhcpd.h.

◆ DEFAULT_CACHE_THRESHOLD

#define DEFAULT_CACHE_THRESHOLD   25

Definition at line 854 of file dhcpd.h.

◆ DEFAULT_DDNS_TTL

#define DEFAULT_DDNS_TTL   3600

Definition at line 870 of file dhcpd.h.

◆ DEFAULT_DEFAULT_LEASE_TIME

#define DEFAULT_DEFAULT_LEASE_TIME   43200

Definition at line 858 of file dhcpd.h.

◆ DEFAULT_DELAYED_ACK

#define DEFAULT_DELAYED_ACK   0 /* default 0 disables delayed acking */

Definition at line 838 of file dhcpd.h.

◆ DEFAULT_MAX_LEASE_TIME

#define DEFAULT_MAX_LEASE_TIME   86400

Definition at line 866 of file dhcpd.h.

◆ DEFAULT_MIN_ACK_DELAY_USECS

#define DEFAULT_MIN_ACK_DELAY_USECS   10000 /* 1/100 second */

Definition at line 850 of file dhcpd.h.

◆ DEFAULT_MIN_LEASE_TIME

#define DEFAULT_MIN_LEASE_TIME   300

Definition at line 862 of file dhcpd.h.

◆ DEFAULT_PING_CLTT_SECS

#define DEFAULT_PING_CLTT_SECS   60 /* in seconds */

Definition at line 834 of file dhcpd.h.

◆ DEFAULT_PING_TIMEOUT

#define DEFAULT_PING_TIMEOUT   1

Definition at line 826 of file dhcpd.h.

◆ DEFAULT_PING_TIMEOUT_MS

#define DEFAULT_PING_TIMEOUT_MS   0

Definition at line 830 of file dhcpd.h.

◆ DEFAULT_SPACE_HASH_SIZE

#define DEFAULT_SPACE_HASH_SIZE   11

Definition at line 145 of file dhcpd.h.

◆ DEFAULT_TIME_FORMAT

#define DEFAULT_TIME_FORMAT   0

Definition at line 2619 of file dhcpd.h.

◆ DHC6_ADDR_DECLINED

#define DHC6_ADDR_DECLINED   0x04

Definition at line 1168 of file dhcpd.h.

◆ DHC6_ADDR_DEPREFFED

#define DHC6_ADDR_DEPREFFED   0x01

Definition at line 1166 of file dhcpd.h.

◆ DHC6_ADDR_EXPIRED

#define DHC6_ADDR_EXPIRED   0x02

Definition at line 1167 of file dhcpd.h.

◆ DHCP_LOG_OPTIONS

#define DHCP_LOG_OPTIONS   LOG_NDELAY | LOG_PID

Definition at line 1636 of file dhcpd.h.

◆ DHCPD_LOG_FACILITY

#define DHCPD_LOG_FACILITY   LOG_DAEMON

Definition at line 1627 of file dhcpd.h.

◆ DISCOVER_RELAY

#define DISCOVER_RELAY   3

Definition at line 699 of file dhcpd.h.

◆ DISCOVER_REQUESTED

#define DISCOVER_REQUESTED   5

Definition at line 701 of file dhcpd.h.

◆ DISCOVER_RUNNING

#define DISCOVER_RUNNING   0

Definition at line 696 of file dhcpd.h.

◆ DISCOVER_SERVER

#define DISCOVER_SERVER   1

Definition at line 697 of file dhcpd.h.

◆ DISCOVER_SERVER46

#define DISCOVER_SERVER46   4

Definition at line 700 of file dhcpd.h.

◆ DISCOVER_UNCONFIGURED

#define DISCOVER_UNCONFIGURED   2

Definition at line 698 of file dhcpd.h.

◆ DNS_HASH_SIZE

#define DNS_HASH_SIZE   0 /* Default. */

Definition at line 140 of file dhcpd.h.

◆ DNS_ZONE_ACTIVE

#define DNS_ZONE_ACTIVE   0

Definition at line 1518 of file dhcpd.h.

◆ DNS_ZONE_INACTIVE

#define DNS_ZONE_INACTIVE   1

Definition at line 1519 of file dhcpd.h.

◆ EOL

#define EOL   '\n'

Definition at line 88 of file dhcpd.h.

◆ EPHEMERAL_FLAGS

#define EPHEMERAL_FLAGS
Value:
#define MS_NULL_TERMINATION
Definition dhcpd.h:595
#define RESERVED_LEASE
Definition dhcpd.h:594
#define BOOTP_LEASE
Definition dhcpd.h:593
#define UNICAST_BROADCAST_HACK
Definition dhcpd.h:599

Definition at line 605 of file dhcpd.h.

◆ EXPIRED_IPV6_CLEANUP_TIME

#define EXPIRED_IPV6_CLEANUP_TIME   (60*60)

Definition at line 1662 of file dhcpd.h.

◆ FIND_FORWARD

#define FIND_FORWARD   0

Definition at line 3218 of file dhcpd.h.

◆ FIND_PERCENT

#define FIND_PERCENT ( count,
percent )
Value:
((count) > (INT_MAX / 100) ? \
((count) / 100) * (percent) : ((count) * (percent)) / 100)

Definition at line 3919 of file dhcpd.h.

◆ FIND_POND6_PERCENT

#define FIND_POND6_PERCENT ( count,
percent )
Value:
((count) > (POND_TRACK_MAX / 100) ? \
((count) / 100) * (percent) : ((count) * (percent)) / 100)
#define POND_TRACK_MAX
Definition dhcpd.h:1774

Definition at line 3923 of file dhcpd.h.

◆ FIND_REVERSE

#define FIND_REVERSE   1

Definition at line 3219 of file dhcpd.h.

◆ FQDN_HASH_SIZE

#define FQDN_HASH_SIZE   13 /* A ridiculously small table. */

Definition at line 153 of file dhcpd.h.

◆ FTS_ABANDONED

#define FTS_ABANDONED   5

Definition at line 541 of file dhcpd.h.

◆ FTS_ACTIVE

#define FTS_ACTIVE   2

Definition at line 538 of file dhcpd.h.

◆ FTS_BACKUP

#define FTS_BACKUP   7

Definition at line 543 of file dhcpd.h.

◆ FTS_EXPIRED

#define FTS_EXPIRED   3

Definition at line 539 of file dhcpd.h.

◆ FTS_FREE

#define FTS_FREE   1

Definition at line 537 of file dhcpd.h.

◆ FTS_LAST

#define FTS_LAST   FTS_BACKUP

Definition at line 547 of file dhcpd.h.

◆ FTS_RELEASED

#define FTS_RELEASED   4

Definition at line 540 of file dhcpd.h.

◆ FTS_RESET

#define FTS_RESET   6

Definition at line 542 of file dhcpd.h.

◆ GROUP_DECL

#define GROUP_DECL   5

Definition at line 691 of file dhcpd.h.

◆ GROUP_HASH_SIZE

#define GROUP_HASH_SIZE   0 /* Default. */

Definition at line 180 of file dhcpd.h.

◆ GROUP_OBJECT_DELETED

#define GROUP_OBJECT_DELETED   1

Definition at line 956 of file dhcpd.h.

◆ GROUP_OBJECT_DYNAMIC

#define GROUP_OBJECT_DYNAMIC   2

Definition at line 957 of file dhcpd.h.

◆ GROUP_OBJECT_STATIC

#define GROUP_OBJECT_STATIC   4

Definition at line 958 of file dhcpd.h.

◆ HARDWARE_ADDR_LEN

#define HARDWARE_ADDR_LEN   20

Definition at line 486 of file dhcpd.h.

◆ HARDWARE_ADDR_LEN_IOCTL

#define HARDWARE_ADDR_LEN_IOCTL   8

Definition at line 489 of file dhcpd.h.

◆ HOST_DECL

#define HOST_DECL   1

Definition at line 687 of file dhcpd.h.

◆ HOST_DECL_DELETED

#define HOST_DECL_DELETED   1

Definition at line 992 of file dhcpd.h.

◆ HOST_DECL_DYNAMIC

#define HOST_DECL_DYNAMIC   2

Definition at line 993 of file dhcpd.h.

◆ HOST_DECL_STATIC

#define HOST_DECL_STATIC   4

Definition at line 994 of file dhcpd.h.

◆ HOST_HASH_SIZE

#define HOST_HASH_SIZE   22501

Definition at line 186 of file dhcpd.h.

◆ INFINITE_TIME

#define INFINITE_TIME   0xffffffff

Definition at line 1630 of file dhcpd.h.

◆ INTERFACE_AUTOMATIC

#define INTERFACE_AUTOMATIC   2

Definition at line 1425 of file dhcpd.h.

◆ INTERFACE_DOWNSTREAM

#define INTERFACE_DOWNSTREAM   8

Definition at line 1427 of file dhcpd.h.

◆ INTERFACE_REQUESTED

#define INTERFACE_REQUESTED   1

Definition at line 1424 of file dhcpd.h.

◆ INTERFACE_RUNNING

#define INTERFACE_RUNNING   4

Definition at line 1426 of file dhcpd.h.

◆ INTERFACE_STREAMS

#define INTERFACE_STREAMS   (INTERFACE_DOWNSTREAM | INTERFACE_UPSTREAM)

Definition at line 1429 of file dhcpd.h.

◆ INTERFACE_UPSTREAM

#define INTERFACE_UPSTREAM   16

Definition at line 1428 of file dhcpd.h.

◆ LEASE_GET_FIRST

#define LEASE_GET_FIRST ( LQ)
Value:
struct lease * lc_get_first_lease(struct leasechain *lc)

Definition at line 258 of file dhcpd.h.

◆ LEASE_GET_FIRSTP

#define LEASE_GET_FIRSTP ( LQ)
Value:

Definition at line 259 of file dhcpd.h.

◆ LEASE_GET_NEXT

#define LEASE_GET_NEXT ( LQ,
LEASE )
Value:
struct lease * lc_get_next(struct leasechain *lc, struct lease *lp)
@ LEASE
Definition dhctoken.h:75

Definition at line 260 of file dhcpd.h.

◆ LEASE_GET_NEXTP

#define LEASE_GET_NEXTP ( LQ,
LEASE )
Value:

Definition at line 261 of file dhcpd.h.

◆ LEASE_HASH_SIZE

#define LEASE_HASH_SIZE   100003

Definition at line 196 of file dhcpd.h.

◆ LEASE_INSERTP

#define LEASE_INSERTP ( LQ,
LEASE )
Value:
void lc_add_sorted_lease(struct leasechain *lc, struct lease *lp)

Definition at line 262 of file dhcpd.h.

◆ LEASE_NOT_EMPTY

#define LEASE_NOT_EMPTY ( LQ)
Value:
int lc_not_empty(struct leasechain *lc)

Definition at line 264 of file dhcpd.h.

◆ LEASE_NOT_EMPTYP

#define LEASE_NOT_EMPTYP ( LQ)
Value:

Definition at line 265 of file dhcpd.h.

◆ LEASE_REMOVEP

#define LEASE_REMOVEP ( LQ,
LEASE )
Value:
void lc_unlink_lease(struct leasechain *lc, struct lease *lp)

Definition at line 263 of file dhcpd.h.

◆ LEASE_STRUCT

#define LEASE_STRUCT   struct leasechain

Definition at line 256 of file dhcpd.h.

◆ LEASE_STRUCT_PTR

#define LEASE_STRUCT_PTR   struct leasechain *

Definition at line 257 of file dhcpd.h.

◆ LOCAL_TIME_FORMAT

#define LOCAL_TIME_FORMAT   1

Definition at line 2620 of file dhcpd.h.

◆ MAX_ADDRESS_STRING_LEN

#define MAX_ADDRESS_STRING_LEN    (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"))

Definition at line 3913 of file dhcpd.h.

◆ MAX_DEFAULT_DDNS_TTL

#define MAX_DEFAULT_DDNS_TTL   3600

Definition at line 873 of file dhcpd.h.

◆ MAX_TIME

#define MAX_TIME   0x7fffffff

Definition at line 1631 of file dhcpd.h.

◆ MIN_LEASE_WRITE

#define MIN_LEASE_WRITE   15

Definition at line 877 of file dhcpd.h.

◆ MIN_TIME

#define MIN_TIME   0

Definition at line 1632 of file dhcpd.h.

◆ MIN_V6ONLY_WAIT

#define MIN_V6ONLY_WAIT   300

Definition at line 885 of file dhcpd.h.

◆ MS_NULL_TERMINATION

#define MS_NULL_TERMINATION   8

Definition at line 595 of file dhcpd.h.

◆ NWIP_HASH_SIZE

#define NWIP_HASH_SIZE   17 /* A really small table. */

Definition at line 149 of file dhcpd.h.

◆ ON_ACK_QUEUE

#define ON_ACK_QUEUE   32

Definition at line 597 of file dhcpd.h.

◆ ON_DEFERRED_QUEUE

#define ON_DEFERRED_QUEUE   128

Definition at line 600 of file dhcpd.h.

◆ ON_QUEUE

#define ON_QUEUE   (ON_UPDATE_QUEUE | ON_ACK_QUEUE)

Definition at line 598 of file dhcpd.h.

◆ ON_UPDATE_QUEUE

#define ON_UPDATE_QUEUE   16

Definition at line 596 of file dhcpd.h.

◆ OPTION_CLR

#define OPTION_CLR ( mask,
bit )
Value:
(mask [bit >> 8] &= ~(1 << (bit & 7)))

Definition at line 1546 of file dhcpd.h.

◆ OPTION_HAD_NULLS

#define OPTION_HAD_NULLS   0x00000001

Definition at line 392 of file dhcpd.h.

◆ OPTION_HASH_EXP

#define OPTION_HASH_EXP   5 /* The exponent for that power of two. */

Definition at line 225 of file dhcpd.h.

◆ OPTION_HASH_PTWO

#define OPTION_HASH_PTWO   32 /* Next power of two above option hash. */

Definition at line 224 of file dhcpd.h.

◆ OPTION_HASH_SIZE

#define OPTION_HASH_SIZE   17

Definition at line 223 of file dhcpd.h.

◆ OPTION_ISCLR

#define OPTION_ISCLR ( mask,
bit )
Value:
(!OPTION_ISSET (mask, bit))
#define OPTION_ISSET(mask, bit)
Definition dhcpd.h:1547

Definition at line 1548 of file dhcpd.h.

◆ OPTION_ISSET

#define OPTION_ISSET ( mask,
bit )
Value:
(mask [bit >> 8] & (1 << (bit & 7)))

Definition at line 1547 of file dhcpd.h.

◆ OPTION_SET

#define OPTION_SET ( mask,
bit )
Value:
(mask [bit >> 8] |= (1 << (bit & 7)))

Definition at line 1545 of file dhcpd.h.

◆ OPTION_SPACE

#define OPTION_SPACE ( x)
Value:
((x) + 2 * ((x) / 255 + 1))

Definition at line 1552 of file dhcpd.h.

◆ OPTION_ZERO

#define OPTION_ZERO ( mask)
Value:
(memset (mask, 0, 16))

Definition at line 1544 of file dhcpd.h.

◆ PACKET_MAX_CLASSES

#define PACKET_MAX_CLASSES   5

Definition at line 452 of file dhcpd.h.

◆ PERSISTENT_FLAGS

#define PERSISTENT_FLAGS   (ON_ACK_QUEUE | ON_UPDATE_QUEUE)

Definition at line 603 of file dhcpd.h.

◆ PLM_EXACT

#define PLM_EXACT   2

Definition at line 890 of file dhcpd.h.

◆ PLM_IGNORE

#define PLM_IGNORE   0

Definition at line 888 of file dhcpd.h.

◆ PLM_MAXIMUM

#define PLM_MAXIMUM   4

Definition at line 892 of file dhcpd.h.

◆ PLM_MINIMUM

#define PLM_MINIMUM   3

Definition at line 891 of file dhcpd.h.

◆ PLM_PREFER

#define PLM_PREFER   1

Definition at line 889 of file dhcpd.h.

◆ POND_TRACK_MAX

#define POND_TRACK_MAX   ISC_UINT64_MAX

Definition at line 1774 of file dhcpd.h.

◆ POOL_DECL

#define POOL_DECL   6

Definition at line 692 of file dhcpd.h.

◆ POOL_DESTROYP

#define POOL_DESTROYP ( LQ)
Value:
void lc_delete_all(struct leasechain *lc)

Definition at line 266 of file dhcpd.h.

◆ print_hex_1

#define print_hex_1 ( len,
data,
limit )
Value:
print_hex(len, data, limit, 0)
char * print_hex(unsigned len, const u_int8_t *data, unsigned limit, unsigned buf_num)
Definition print.c:456

Definition at line 2638 of file dhcpd.h.

◆ print_hex_2

#define print_hex_2 ( len,
data,
limit )
Value:
print_hex(len, data, limit, 1)

Definition at line 2639 of file dhcpd.h.

◆ print_hex_3

#define print_hex_3 ( len,
data,
limit )
Value:
print_hex(len, data, limit, 2)

Definition at line 2640 of file dhcpd.h.

◆ QUAD_CODE_HASH_SIZE

#define QUAD_CODE_HASH_SIZE   WORD_CODE_HASH_SIZE

Definition at line 136 of file dhcpd.h.

◆ QUAD_NAME_HASH_SIZE

#define QUAD_NAME_HASH_SIZE   WORD_NAME_HASH_SIZE

Definition at line 133 of file dhcpd.h.

◆ RESERVED_LEASE

#define RESERVED_LEASE   4

Definition at line 594 of file dhcpd.h.

◆ ROOT_GROUP

#define ROOT_GROUP   0

Definition at line 686 of file dhcpd.h.

◆ SCLASS_HASH_SIZE

#define SCLASS_HASH_SIZE   12007

Definition at line 203 of file dhcpd.h.

◆ SERVER_HASH_SIZE

#define SERVER_HASH_SIZE   (2*(sizeof(server_options) / sizeof(struct option)))

Definition at line 217 of file dhcpd.h.

◆ SHARED_IMPLICIT

#define SHARED_IMPLICIT   1 /* This network was synthesized. */

Definition at line 1062 of file dhcpd.h.

◆ SHARED_NET_DECL

#define SHARED_NET_DECL   2

Definition at line 688 of file dhcpd.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 2192 of file dhcpd.h.

◆ STATIC_LEASE

#define STATIC_LEASE   1

Definition at line 592 of file dhcpd.h.

◆ SUBNET_DECL

#define SUBNET_DECL   3

Definition at line 689 of file dhcpd.h.

◆ SV_ABANDON_LEASE_TIME

#define SV_ABANDON_LEASE_TIME   89

Definition at line 808 of file dhcpd.h.

◆ SV_ADAPTIVE_LEASE_TIME_THRESHOLD

#define SV_ADAPTIVE_LEASE_TIME_THRESHOLD   50

Definition at line 760 of file dhcpd.h.

◆ SV_ALLOW_BOOTING

#define SV_ALLOW_BOOTING   9

Definition at line 719 of file dhcpd.h.

◆ SV_ALLOW_BOOTP

#define SV_ALLOW_BOOTP   8

Definition at line 718 of file dhcpd.h.

◆ SV_ALWAYS_BROADCAST

#define SV_ALWAYS_BROADCAST   22

Definition at line 732 of file dhcpd.h.

◆ SV_ALWAYS_REPLY_RFC1048

#define SV_ALWAYS_REPLY_RFC1048   20

Definition at line 730 of file dhcpd.h.

◆ SV_AUTHORITATIVE

#define SV_AUTHORITATIVE   18

Definition at line 728 of file dhcpd.h.

◆ SV_BIND_LOCAL_ADDRESS6

#define SV_BIND_LOCAL_ADDRESS6   98

Definition at line 821 of file dhcpd.h.

◆ SV_BOOT_UNKNOWN_CLIENTS

#define SV_BOOT_UNKNOWN_CLIENTS   6

Definition at line 716 of file dhcpd.h.

◆ SV_BOOTP_LEASE_CUTOFF

#define SV_BOOTP_LEASE_CUTOFF   4

Definition at line 714 of file dhcpd.h.

◆ SV_BOOTP_LEASE_LENGTH

#define SV_BOOTP_LEASE_LENGTH   5

Definition at line 715 of file dhcpd.h.

◆ SV_CACHE_THRESHOLD

#define SV_CACHE_THRESHOLD   78

Definition at line 797 of file dhcpd.h.

◆ SV_CHECK_SECS_BYTE_ORDER

#define SV_CHECK_SECS_BYTE_ORDER   92

Definition at line 814 of file dhcpd.h.

◆ SV_CLIENT_UPDATES

#define SV_CLIENT_UPDATES   40

Definition at line 750 of file dhcpd.h.

◆ SV_DDNS_CONFLICT_DETECT

#define SV_DDNS_CONFLICT_DETECT   48

Definition at line 758 of file dhcpd.h.

◆ SV_DDNS_DOMAIN_NAME

#define SV_DDNS_DOMAIN_NAME   23

Definition at line 733 of file dhcpd.h.

◆ SV_DDNS_DUAL_STACK_MIXED_MODE

#define SV_DDNS_DUAL_STACK_MIXED_MODE   93

Definition at line 816 of file dhcpd.h.

◆ SV_DDNS_GUARD_ID_MUST_MATCH

#define SV_DDNS_GUARD_ID_MUST_MATCH   94

Definition at line 817 of file dhcpd.h.

◆ SV_DDNS_HOST_NAME

#define SV_DDNS_HOST_NAME   24

Definition at line 734 of file dhcpd.h.

◆ SV_DDNS_LOCAL_ADDRESS4

#define SV_DDNS_LOCAL_ADDRESS4   80

Definition at line 799 of file dhcpd.h.

◆ SV_DDNS_LOCAL_ADDRESS6

#define SV_DDNS_LOCAL_ADDRESS6   81

Definition at line 800 of file dhcpd.h.

◆ SV_DDNS_OTHER_GUARD_IS_DYNAMIC

#define SV_DDNS_OTHER_GUARD_IS_DYNAMIC   95

Definition at line 818 of file dhcpd.h.

◆ SV_DDNS_REV_DOMAIN_NAME

#define SV_DDNS_REV_DOMAIN_NAME   25

Definition at line 735 of file dhcpd.h.

◆ SV_DDNS_TTL

#define SV_DDNS_TTL   38

Definition at line 748 of file dhcpd.h.

◆ SV_DDNS_UPDATE_STYLE

#define SV_DDNS_UPDATE_STYLE   39

Definition at line 749 of file dhcpd.h.

◆ SV_DDNS_UPDATES

#define SV_DDNS_UPDATES   30

Definition at line 740 of file dhcpd.h.

◆ SV_DECLINES

#define SV_DECLINES   29

Definition at line 739 of file dhcpd.h.

◆ SV_DEFAULT_LEASE_TIME

#define SV_DEFAULT_LEASE_TIME   1

Definition at line 711 of file dhcpd.h.

◆ SV_DELAYED_ACK

#define SV_DELAYED_ACK   58

Definition at line 768 of file dhcpd.h.

◆ SV_DHCPV6_LEASE_FILE_NAME

#define SV_DHCPV6_LEASE_FILE_NAME   54

Definition at line 764 of file dhcpd.h.

◆ SV_DHCPV6_PID_FILE_NAME

#define SV_DHCPV6_PID_FILE_NAME   55

Definition at line 765 of file dhcpd.h.

◆ SV_DHCPV6_SET_TEE_TIMES

#define SV_DHCPV6_SET_TEE_TIMES   88

Definition at line 807 of file dhcpd.h.

◆ SV_DO_FORWARD_UPDATES

#define SV_DO_FORWARD_UPDATES   45

Definition at line 755 of file dhcpd.h.

◆ SV_DO_REVERSE_UPDATES

#define SV_DO_REVERSE_UPDATES   51

Definition at line 761 of file dhcpd.h.

◆ SV_DONT_USE_FSYNC

#define SV_DONT_USE_FSYNC   79

Definition at line 798 of file dhcpd.h.

◆ SV_DUPLICATES

#define SV_DUPLICATES   28

Definition at line 738 of file dhcpd.h.

◆ SV_DYNAMIC_BOOTP

#define SV_DYNAMIC_BOOTP   7

Definition at line 717 of file dhcpd.h.

◆ SV_ECHO_CLIENT_ID

#define SV_ECHO_CLIENT_ID   85

Definition at line 804 of file dhcpd.h.

◆ SV_FILENAME

#define SV_FILENAME   15

Definition at line 725 of file dhcpd.h.

◆ SV_FQDN_REPLY

#define SV_FQDN_REPLY   52

Definition at line 762 of file dhcpd.h.

◆ SV_GET_LEASE_HOSTNAMES

#define SV_GET_LEASE_HOSTNAMES   11

Definition at line 721 of file dhcpd.h.

◆ SV_IGNORE_CLIENT_UIDS

#define SV_IGNORE_CLIENT_UIDS   82

Definition at line 801 of file dhcpd.h.

◆ SV_LEASE_FILE_NAME

#define SV_LEASE_FILE_NAME   26

Definition at line 736 of file dhcpd.h.

◆ SV_LEASEQUERY

#define SV_LEASEQUERY   49

Definition at line 759 of file dhcpd.h.

◆ SV_LIMIT_ADDRS_PER_IA

#define SV_LIMIT_ADDRS_PER_IA   56

Definition at line 766 of file dhcpd.h.

◆ SV_LIMIT_PREFS_PER_IA

#define SV_LIMIT_PREFS_PER_IA   57

Definition at line 767 of file dhcpd.h.

◆ SV_LIMITED_BROADCAST_ADDRESS

#define SV_LIMITED_BROADCAST_ADDRESS   33

Definition at line 743 of file dhcpd.h.

◆ SV_LOCAL_ADDRESS

#define SV_LOCAL_ADDRESS   35

Definition at line 745 of file dhcpd.h.

◆ SV_LOCAL_ADDRESS6

#define SV_LOCAL_ADDRESS6   97

Definition at line 820 of file dhcpd.h.

◆ SV_LOCAL_PORT

#define SV_LOCAL_PORT   32

Definition at line 742 of file dhcpd.h.

◆ SV_LOG_FACILITY

#define SV_LOG_FACILITY   44

Definition at line 754 of file dhcpd.h.

◆ SV_LOG_THRESHOLD_HIGH

#define SV_LOG_THRESHOLD_HIGH   84

Definition at line 803 of file dhcpd.h.

◆ SV_LOG_THRESHOLD_LOW

#define SV_LOG_THRESHOLD_LOW   83

Definition at line 802 of file dhcpd.h.

◆ SV_MAX_ACK_DELAY

#define SV_MAX_ACK_DELAY   59

Definition at line 769 of file dhcpd.h.

◆ SV_MAX_LEASE_TIME

#define SV_MAX_LEASE_TIME   2

Definition at line 712 of file dhcpd.h.

◆ SV_MIN_LEASE_TIME

#define SV_MIN_LEASE_TIME   3

Definition at line 713 of file dhcpd.h.

◆ SV_MIN_SECS

#define SV_MIN_SECS   14

Definition at line 724 of file dhcpd.h.

◆ SV_NEXT_SERVER

#define SV_NEXT_SERVER   17

Definition at line 727 of file dhcpd.h.

◆ SV_OMAPI_KEY

#define SV_OMAPI_KEY   36

Definition at line 746 of file dhcpd.h.

◆ SV_OMAPI_PORT

#define SV_OMAPI_PORT   31

Definition at line 741 of file dhcpd.h.

◆ SV_ONE_LEASE_PER_CLIENT

#define SV_ONE_LEASE_PER_CLIENT   10

Definition at line 720 of file dhcpd.h.

◆ SV_PID_FILE_NAME

#define SV_PID_FILE_NAME   27

Definition at line 737 of file dhcpd.h.

◆ SV_PING_CHECKS

#define SV_PING_CHECKS   42

Definition at line 752 of file dhcpd.h.

◆ SV_PING_CLTT_SECS

#define SV_PING_CLTT_SECS   99

Definition at line 822 of file dhcpd.h.

◆ SV_PING_TIMEOUT

#define SV_PING_TIMEOUT   46

Definition at line 756 of file dhcpd.h.

◆ SV_PING_TIMEOUT_MS

#define SV_PING_TIMEOUT_MS   100

Definition at line 823 of file dhcpd.h.

◆ SV_PREFER_LIFETIME

#define SV_PREFER_LIFETIME   53

Definition at line 763 of file dhcpd.h.

◆ SV_PREFIX_LEN_MODE

#define SV_PREFIX_LEN_MODE   87

Definition at line 806 of file dhcpd.h.

◆ SV_RELEASE_ON_ROAM

#define SV_RELEASE_ON_ROAM   96

Definition at line 819 of file dhcpd.h.

◆ SV_REMOTE_PORT

#define SV_REMOTE_PORT   34

Definition at line 744 of file dhcpd.h.

◆ SV_RESERVE_INFINITE

#define SV_RESERVE_INFINITE   47

Definition at line 757 of file dhcpd.h.

◆ SV_SERVER_ID_CHECK

#define SV_SERVER_ID_CHECK   86

Definition at line 805 of file dhcpd.h.

◆ SV_SERVER_NAME

#define SV_SERVER_NAME   16

Definition at line 726 of file dhcpd.h.

◆ SV_SITE_OPTION_SPACE

#define SV_SITE_OPTION_SPACE   21

Definition at line 731 of file dhcpd.h.

◆ SV_STASH_AGENT_OPTIONS

#define SV_STASH_AGENT_OPTIONS   37

Definition at line 747 of file dhcpd.h.

◆ SV_UPDATE_OPTIMIZATION

#define SV_UPDATE_OPTIMIZATION   41

Definition at line 751 of file dhcpd.h.

◆ SV_UPDATE_STATIC_LEASES

#define SV_UPDATE_STATIC_LEASES   43

Definition at line 753 of file dhcpd.h.

◆ SV_USE_HOST_DECL_NAMES

#define SV_USE_HOST_DECL_NAMES   12

Definition at line 722 of file dhcpd.h.

◆ SV_USE_LEASE_ADDR_FOR_DEFAULT_ROUTE

#define SV_USE_LEASE_ADDR_FOR_DEFAULT_ROUTE   13

Definition at line 723 of file dhcpd.h.

◆ SV_VENDOR_OPTION_SPACE

#define SV_VENDOR_OPTION_SPACE   19

Definition at line 729 of file dhcpd.h.

◆ UNICAST_BROADCAST_HACK

#define UNICAST_BROADCAST_HACK   64

Definition at line 599 of file dhcpd.h.

◆ UNIVERSE_HASH_SIZE

#define UNIVERSE_HASH_SIZE   13 /* A really small table. */

Definition at line 176 of file dhcpd.h.

◆ VIV_ISC_HASH_SIZE

#define VIV_ISC_HASH_SIZE   3 /* An incredulously small table. */

Definition at line 172 of file dhcpd.h.

◆ VIVCO_HASH_SIZE

#define VIVCO_HASH_SIZE   127

Definition at line 160 of file dhcpd.h.

◆ VIVSO_HASH_SIZE

#define VIVSO_HASH_SIZE   VIVCO_HASH_SIZE

Definition at line 164 of file dhcpd.h.

◆ VSIO_HASH_SIZE

#define VSIO_HASH_SIZE   VIVCO_HASH_SIZE

Definition at line 168 of file dhcpd.h.

◆ WORD_CODE_HASH_SIZE

#define WORD_CODE_HASH_SIZE   16384

Definition at line 124 of file dhcpd.h.

◆ WORD_NAME_HASH_SIZE

#define WORD_NAME_HASH_SIZE   20479

Definition at line 121 of file dhcpd.h.

Typedef Documentation

◆ binding_state_t

typedef u_int8_t binding_state_t

Definition at line 544 of file dhcpd.h.

◆ class_hash_t

typedef struct hash_table class_hash_t

Definition at line 83 of file dhcpd.h.

◆ ddns_action_t

typedef void(* ddns_action_t) (struct dhcp_ddns_cb *ddns_cb, isc_result_t result)

Definition at line 1816 of file dhcpd.h.

◆ dhcp_ddns_cb_t

typedef struct dhcp_ddns_cb dhcp_ddns_cb_t

◆ dns_zone_hash_t

typedef struct hash_table dns_zone_hash_t

Definition at line 79 of file dhcpd.h.

◆ group_hash_t

typedef struct hash_table group_hash_t

Definition at line 75 of file dhcpd.h.

◆ host_hash_t

typedef struct hash_table host_hash_t

Definition at line 82 of file dhcpd.h.

◆ ia_hash_t

typedef struct hash_table ia_hash_t

Definition at line 1641 of file dhcpd.h.

◆ iasubopt_hash_t

typedef struct hash_table iasubopt_hash_t

Definition at line 1642 of file dhcpd.h.

◆ lease_id_hash_t

typedef struct hash_table lease_id_hash_t

Definition at line 81 of file dhcpd.h.

◆ lease_ip_hash_t

typedef struct hash_table lease_ip_hash_t

Definition at line 80 of file dhcpd.h.

◆ option_code_hash_t

Definition at line 78 of file dhcpd.h.

◆ option_mask

typedef unsigned char option_mask[16]

Definition at line 1541 of file dhcpd.h.

◆ option_name_hash_t

Definition at line 77 of file dhcpd.h.

◆ TIME

typedef time_t TIME

Definition at line 85 of file dhcpd.h.

◆ tvref_t

typedef void(* tvref_t) (void *, void *, const char *, int)

Definition at line 1453 of file dhcpd.h.

◆ tvunref_t

typedef void(* tvunref_t) (void *, const char *, int)

Definition at line 1454 of file dhcpd.h.

◆ universe_hash_t

typedef struct hash_table universe_hash_t

Definition at line 76 of file dhcpd.h.

Enumeration Type Documentation

◆ control_object_state_t

Enumerator
server_startup 
server_running 
server_shutdown 
server_hibernate 
server_awaken 
server_time_changed 

Definition at line 522 of file dhcpd.h.

◆ dhcp_pending

Enumerator
P_NONE 
P_REBOOT 
P_RELEASE 

Definition at line 1220 of file dhcpd.h.

◆ dhcp_shutdown_state

Enumerator
shutdown_listeners 
shutdown_omapi_connections 
shutdown_drop_omapi_connections 
shutdown_dhcp 
shutdown_done 

Definition at line 269 of file dhcpd.h.

◆ dhcp_state

enum dhcp_state
Enumerator
S_REBOOTING 
S_INIT 
S_SELECTING 
S_REQUESTING 
S_BOUND 
S_RENEWING 
S_REBINDING 
S_DECLINING 
S_STOPPED 
S_V6ONLY 

Definition at line 1206 of file dhcpd.h.

◆ policy

enum policy
Enumerator
P_IGNORE 
P_ACCEPT 
P_PREFER 
P_REQUIRE 
P_DONT 

Definition at line 1228 of file dhcpd.h.

Function Documentation

◆ abandon_lease()

void abandon_lease ( struct lease * lease,
const char * message )

Definition at line 1830 of file mdb.c.

◆ absolute_path()

char * absolute_path ( const char * orgpath)

Definition at line 1453 of file print.c.

◆ ack_lease()

void ack_lease ( struct packet * packet,
struct lease * lease,
unsigned int offer,
TIME when,
char * msg,
int ms_nulltp,
struct host_decl * hp )

Definition at line 2201 of file dhcp.c.

◆ add_enumeration()

void add_enumeration ( struct enumeration * enumeration)

Definition at line 41 of file parse.c.

◆ add_ipv6_pool()

isc_result_t add_ipv6_pool ( struct ipv6_pool * pool)

Definition at line 2024 of file mdb6.c.

◆ add_lease6()

isc_result_t add_lease6 ( struct ipv6_pool * pool,
struct iasubopt * lease,
time_t valid_lifetime_end_time )

Definition at line 1416 of file mdb6.c.

◆ add_option()

int add_option ( struct option_state * options,
unsigned int option_num,
void * data,
unsigned int data_len )

Definition at line 4480 of file options.c.

◆ add_route_default_gateway()

void add_route_default_gateway ( struct interface_info * ,
struct in_addr  )

◆ add_route_direct()

void add_route_direct ( struct interface_info * ,
struct in_addr  )

◆ add_route_net()

void add_route_net ( struct interface_info * ,
struct in_addr ,
struct in_addr  )

◆ add_timeout()

void add_timeout ( struct timeval * ,
void(*  )(void *),
void * ,
tvref_t ,
tvunref_t  )

◆ addr_and()

int addr_and ( struct iaddr * result,
const struct iaddr * a1,
const struct iaddr * a2 )

Definition at line 267 of file inet.c.

◆ addr_cmp()

int addr_cmp ( const struct iaddr * a1,
const struct iaddr * a2 )

Definition at line 211 of file inet.c.

◆ addr_eq()

int addr_eq ( struct iaddr addr1,
struct iaddr addr2 )

Definition at line 166 of file inet.c.

◆ addr_match()

int addr_match ( struct iaddr * addr,
struct iaddrmatch * match )

Definition at line 184 of file inet.c.

◆ addr_or()

int addr_or ( struct iaddr * result,
const struct iaddr * a1,
const struct iaddr * a2 )

Definition at line 238 of file inet.c.

◆ allocate_lease()

int allocate_lease ( struct lease ** lp,
struct packet * packet,
struct pool * pool,
int * peer_has_leases )

Definition at line 5019 of file dhcp.c.

◆ also_save_option()

void also_save_option ( struct universe * universe,
struct option_state * options,
struct option_cache * oc )

Definition at line 2829 of file options.c.

◆ append_option()

int append_option ( struct data_string * dst,
struct universe * universe,
struct option * option,
struct data_string * src )

Definition at line 3041 of file options.c.

◆ append_option_buffer()

int append_option_buffer ( struct universe * universe,
struct option_state * options,
struct buffer * bp,
unsigned char * buffer,
unsigned length,
unsigned code,
int terminatep )

Definition at line 2569 of file options.c.

◆ assemble_ethernet_header()

void assemble_ethernet_header ( struct interface_info * ,
unsigned char * ,
unsigned * ,
struct hardware *  )

◆ assemble_hw_header()

void assemble_hw_header ( struct interface_info * ,
unsigned char * ,
unsigned * ,
struct hardware *  )

◆ assemble_tr_header()

void assemble_tr_header ( struct interface_info * ,
unsigned char * ,
unsigned * ,
struct hardware *  )

◆ assemble_udp_ip_header()

void assemble_udp_ip_header ( struct interface_info * ,
unsigned char * ,
unsigned * ,
u_int32_t ,
u_int32_t ,
u_int32_t ,
unsigned char * ,
unsigned  )

◆ bill_class()

int bill_class ( struct lease * lease,
struct class * class )

Definition at line 296 of file class.c.

◆ bind_ds_value()

int bind_ds_value ( struct binding_scope ** scope,
const char * name,
struct data_string * value )

Definition at line 4080 of file tree.c.

◆ bind_lease()

void bind_lease ( struct client_state * client)

Definition at line 2071 of file dhclient.c.

◆ binding_scope_allocate()

int binding_scope_allocate ( struct binding_scope ** ptr,
const char * file,
int line )

Definition at line 1194 of file alloc.c.

◆ binding_scope_dereference()

int binding_scope_dereference ( struct binding_scope ** ptr,
const char * file,
int line )

Definition at line 3786 of file tree.c.

◆ binding_scope_get_value()

isc_result_t binding_scope_get_value ( omapi_value_t ** value,
struct binding_scope * scope,
omapi_data_string_t * name )

Definition at line 2471 of file omapi.c.

◆ binding_scope_reference()

int binding_scope_reference ( struct binding_scope ** ptr,
struct binding_scope * bp,
const char * file,
int line )

Definition at line 1227 of file alloc.c.

◆ binding_scope_set_value()

isc_result_t binding_scope_set_value ( struct binding_scope * scope,
int createp,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 2395 of file omapi.c.

◆ binding_scope_stuff_values()

isc_result_t binding_scope_stuff_values ( omapi_object_t * c,
struct binding_scope * scope )

Definition at line 2541 of file omapi.c.

◆ binding_value_allocate()

int binding_value_allocate ( struct binding_value ** cptr,
const char * file,
int line )

Definition at line 500 of file alloc.c.

◆ binding_value_dereference()

int binding_value_dereference ( struct binding_value ** v,
const char * file,
int line )

Definition at line 652 of file tree.c.

◆ binding_value_reference()

int binding_value_reference ( struct binding_value ** ptr,
struct binding_value * src,
const char * file,
int line )

Definition at line 520 of file alloc.c.

◆ bootp()

void bootp ( struct packet * packet)

Definition at line 2256 of file dhclient.c.

◆ broadcast_addr()

struct iaddr broadcast_addr ( struct iaddr subnet,
struct iaddr mask )

Definition at line 112 of file inet.c.

◆ buf_to_hex()

char * buf_to_hex ( const unsigned char * s,
unsigned len,
const char * file,
int line )

Definition at line 1372 of file print.c.

◆ buffer_allocate()

int buffer_allocate ( struct buffer ** ptr,
unsigned len,
const char * file,
int line )

Definition at line 679 of file alloc.c.

◆ buffer_dereference()

int buffer_dereference ( struct buffer ** ptr,
const char * file,
int line )

Definition at line 726 of file alloc.c.

◆ buffer_reference()

int buffer_reference ( struct buffer ** ptr,
struct buffer * bp,
const char * file,
int line )

Definition at line 698 of file alloc.c.

◆ build_server_oro()

void build_server_oro ( struct data_string * server_oro,
struct option_state * options,
const char * file,
int line )

Definition at line 2753 of file options.c.

◆ can_receive_unicast_unconfigured()

int can_receive_unicast_unconfigured ( struct interface_info * )

◆ can_unicast_without_arp()

int can_unicast_without_arp ( struct interface_info * )

◆ cancel_all_timeouts()

void cancel_all_timeouts ( void )

◆ cancel_timeout()

void cancel_timeout ( void(*  )(void *),
void *  )

◆ change_host_uid()

void change_host_uid ( struct host_decl * host,
const char * data,
int len )

Definition at line 184 of file mdb.c.

◆ check_collection()

int check_collection ( struct packet * packet,
struct lease * lease,
struct collection * collection )

Definition at line 1548 of file dhclient.c.

◆ check_v6only()

uint32_t check_v6only ( struct packet * packet,
struct client_state * client )

Definition at line 1703 of file dhclient.c.

◆ checksum()

u_int32_t checksum ( unsigned char * buf,
unsigned nbytes,
u_int32_t sum )

Definition at line 44 of file packet.c.

◆ classification_setup()

void classification_setup ( void )

Definition at line 37 of file class.c.

◆ classify()

void classify ( struct packet * packet,
struct class * class )

Definition at line 1556 of file dhclient.c.

◆ classify_client()

void classify_client ( struct packet * packet)

Definition at line 55 of file class.c.

◆ cleanup()

void cleanup ( void )

◆ cleanup_lease6()

isc_result_t cleanup_lease6 ( ia_hash_t * ia_table,
struct ipv6_pool * pool,
struct iasubopt * lease,
struct ia_xx * ia )

Cleans up leases when reading from a lease file.

This function is only expected to be run when reading leases in from a file. It checks to see if a lease already exists for the new leases's address. We don't add expired leases to the structures when reading a lease file which limits what can happen. We have two variables the owners of the leases being the same or different and the new lease being active or non-active: Owners active same no remove old lease and its connections same yes nothing to do, other code will update the structures. diff no nothing to do diff yes this combination shouldn't happen, we should only have a single active lease per address at a time and that lease should move to non-active before any other lease can become active for that address. Currently we delete the previous lease and pass an error to the caller who should log an error.

When we remove a lease we remove it from the hash table and active heap (remember only active leases are in the structures at this time) for the pool, and from the IA's array. If, after we've removed the pointer from IA's array to the lease, the IA has no more pointers we remove it from the appropriate hash table as well.

Parameters
[in]ia_table= the hash table for the IA
[in]pool= the pool to update
[in]lease= the new lease we want to add
[in]ia= the new ia we are building
Returns
ISC_R_SUCCESS = the incoming lease and any previous lease were in an expected state - one of the first 3 options above. If necessary the old lease was removed. ISC_R_FAILURE = there is already an active lease for the address in the incoming lease. This shouldn't happen if it does flag an error for the caller to log.

Definition at line 1306 of file mdb6.c.

◆ client_dns_remove()

void client_dns_remove ( struct client_state * client,
struct iaddr * addr )

◆ client_dns_update()

isc_result_t client_dns_update ( struct client_state * client,
dhcp_ddns_cb_t * ddns_cb )

◆ client_dns_update_timeout()

void client_dns_update_timeout ( void * cp)

◆ client_envadd()

void client_envadd ( struct client_state * ,
const char * ,
const char * ,
const char * ,
... )

◆ client_location_changed()

void client_location_changed ( void )

Definition at line 5302 of file dhclient.c.

◆ client_option_envadd()

void client_option_envadd ( struct option_cache * oc,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * u,
void * stuff )

Definition at line 4844 of file dhclient.c.

◆ clone_group()

int clone_group ( struct group ** gp,
struct group * group,
const char * file,
int line )

Definition at line 130 of file memory.c.

◆ commit_leases()

int commit_leases ( void )

Definition at line 2234 of file dhclient.c.

◆ commit_leases_timed()

int commit_leases_timed ( void )

Definition at line 1064 of file db.c.

◆ commit_leases_timeout()

void commit_leases_timeout ( void * foo)

Definition at line 1024 of file db.c.

◆ concat_dclists()

int concat_dclists ( struct data_string * result,
struct data_string * list1,
struct data_string * list2 )

Adds two Dc-formatted lists into a single Dc-formatted list.

Given two data_strings containing compressed lists, it constructs a third data_string containing a single compressed list:

  1. Decompressing the first list into a buffer
  2. Decompressing the second list onto the end of the buffer
  3. Compressing the buffer into the result

If either list is empty, the result will be the equal to the compressed content of the non-empty list. If both lists are empty, the result will be an "empty" list: a 1 byte buffer containing 0x00.

It relies on two functions to decompress and compress:

  • MRns_name_uncompress_list() - produces a null-terminated string of comma-separated domain-names from a buffer containing "Dc" formatted data
  • MRns_name_compress_list() - produces a buffer containing "Dc" formatted data from a null-terminated string containing comma-separated domain-names
Parameters
resultdata_string which will contain the combined list in Dc format
list1data_string containing first Dc formatted list
list2data_string containing second Dc formatted list
Returns
0 if there is an error, the length of the new list when successful

Definition at line 4177 of file tree.c.

◆ conf_file_subparse()

isc_result_t conf_file_subparse ( struct parse * cfile,
struct group * group,
int group_type )

Definition at line 250 of file confpars.c.

◆ conflict_binding_state_transition_check()

binding_state_t conflict_binding_state_transition_check ( struct lease * ,
dhcp_failover_state_t * ,
binding_state_t ,
u_int32_t  )

◆ cons()

pair cons ( caddr_t car,
pair cdr )

Definition at line 137 of file tree.c.

◆ cons_agent_information_options()

unsigned cons_agent_information_options ( struct option_state * cfg_options,
struct dhcp_packet * outpacket,
unsigned agentix,
unsigned length )

Definition at line 5528 of file dhclient.c.

◆ cons_options()

int cons_options ( struct packet * inpacket,
struct dhcp_packet * outpacket,
struct lease * lease,
struct client_state * client_state,
int mms,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
int overload_avail,
int terminate,
int bootpp,
struct data_string * prl,
const char * vuname )

Definition at line 538 of file options.c.

◆ convert_address_range()

void convert_address_range ( struct parse * ,
jrefproto  )

◆ convert_class_decl()

void convert_class_decl ( struct parse * ,
jrefproto  )

◆ convert_class_statement()

void convert_class_statement ( struct parse * ,
jrefproto ,
int  )

◆ convert_date()

void convert_date ( struct parse * ,
jrefproto ,
char *  )

◆ convert_filename_decl()

void convert_filename_decl ( struct parse * ,
jrefproto  )

◆ convert_fixed_addr_decl()

void convert_fixed_addr_decl ( struct parse * ,
jrefproto  )

◆ convert_hardware_addr()

void convert_hardware_addr ( struct parse * ,
jrefproto  )

◆ convert_hardware_decl()

void convert_hardware_decl ( struct parse * ,
jrefproto  )

◆ convert_host_decl()

void convert_host_decl ( struct parse * ,
jrefproto  )

◆ convert_host_name()

void convert_host_name ( struct parse * ,
jrefproto  )

◆ convert_host_statement()

void convert_host_statement ( struct parse * ,
jrefproto  )

◆ convert_ip_addr_or_hostname()

void convert_ip_addr_or_hostname ( struct parse * ,
jrefproto ,
int  )

◆ convert_lease_statement()

void convert_lease_statement ( struct parse * ,
jrefproto  )

◆ convert_lease_time()

void convert_lease_time ( struct parse * ,
jrefproto ,
char *  )

◆ 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.

◆ convert_numeric_aggregate()

void convert_numeric_aggregate ( struct parse * ,
jrefproto ,
int ,
int ,
int ,
int  )

◆ convert_option_decl()

void convert_option_decl ( struct parse * ,
jrefproto  )

◆ convert_servername_decl()

void convert_servername_decl ( struct parse * ,
jrefproto  )

◆ convert_shared_net_statement()

void convert_shared_net_statement ( struct parse * ,
jrefproto  )

◆ convert_statement()

void convert_statement ( struct parse * )

◆ convert_subnet_decl()

void convert_subnet_decl ( struct parse * ,
jrefproto  )

◆ convert_subnet_statement()

void convert_subnet_statement ( struct parse * ,
jrefproto  )

◆ copy_server_duid()

void copy_server_duid ( struct data_string * ds,
const char * file,
int line )

◆ create_binding()

struct binding * create_binding ( struct binding_scope ** scope,
const char * name )

Definition at line 4049 of file tree.c.

◆ create_lease6()

isc_result_t create_lease6 ( struct ipv6_pool * pool,
struct iasubopt ** addr,
unsigned int * attempts,
const struct data_string * uid,
time_t soft_lifetime_end_time )

Definition at line 1032 of file mdb6.c.

◆ create_prefix6()

isc_result_t create_prefix6 ( struct ipv6_pool * pool,
struct iasubopt ** pref,
unsigned int * attempts,
const struct data_string * uid,
time_t soft_lifetime_end_time )

Definition at line 1894 of file mdb6.c.

◆ data_string_copy()

void data_string_copy ( struct data_string * dest,
const struct data_string * src,
const char * file,
int line )

Definition at line 1323 of file alloc.c.

◆ data_string_forget()

void data_string_forget ( struct data_string * data,
const char * file,
int line )

Definition at line 1339 of file alloc.c.

◆ data_string_new()

int data_string_new ( struct data_string * new_string,
const char * src,
unsigned int len,
const char * file,
int line )

Constructs a null-terminated data_string from a char* and length.

Allocates a data_string and copies into it the given length of bytes from the given source, adding a terminating null if not present in the source at length-1.

Parameters
new_stringpointer to the data_string to construct. Cannot be NULL. Note that its contents will be overwritten. Passing in the address of an allocated data_string will result in memory leaks.
srcdata to be copied. Cannot be NULL.
lenlength of the data to copied
Returns
1 - if the data_string is constructed successfully, 0 if target data_struct is NULL or the buffer allocation fails.

Definition at line 1272 of file alloc.c.

◆ data_string_sprintfa()

int data_string_sprintfa ( struct data_string * ds,
const char * fmt,
... )

Definition at line 56 of file tree.c.

◆ data_string_terminate()

int data_string_terminate ( struct data_string * str,
const char * file,
int line )

Definition at line 1382 of file alloc.c.

◆ data_string_truncate()

void data_string_truncate ( struct data_string * dp,
int len )

Definition at line 1352 of file alloc.c.

◆ data_subexpression_length()

int data_subexpression_length ( int * ,
struct expression *  )

◆ db_printable()

int db_printable ( const unsigned char * )

◆ db_printable_len()

int db_printable_len ( const unsigned char * ,
unsigned  )

◆ db_startup()

void db_startup ( int testp)

Definition at line 2251 of file dhclient.c.

◆ ddns_cancel()

void ddns_cancel ( dhcp_ddns_cb_t * ddns_cb,
const char * file,
int line )

◆ ddns_cb_alloc()

dhcp_ddns_cb_t * ddns_cb_alloc ( const char * file,
int line )

◆ ddns_cb_forget_zone()

void ddns_cb_forget_zone ( dhcp_ddns_cb_t * ddns_cb)

◆ ddns_cb_free()

void ddns_cb_free ( dhcp_ddns_cb_t * ddns_cb,
const char * file,
int line )

◆ ddns_modify_fwd()

isc_result_t ddns_modify_fwd ( dhcp_ddns_cb_t * ddns_cb,
const char * file,
int line )

◆ ddns_modify_ptr()

isc_result_t ddns_modify_ptr ( dhcp_ddns_cb_t * ddns_cb,
const char * file,
int line )

◆ ddns_removals()

isc_result_t ddns_removals ( struct lease * ,
struct iasubopt * ,
struct dhcp_ddns_cb * ,
isc_boolean_t  )

◆ ddns_remove_fwd()

isc_result_t ddns_remove_fwd ( struct data_string * ,
struct iaddr ,
struct data_string *  )

◆ ddns_state_name()

char * ddns_state_name ( int state)

◆ ddns_update_fwd()

isc_result_t ddns_update_fwd ( struct data_string * ,
struct iaddr ,
struct data_string * ,
unsigned long ,
unsigned ,
unsigned  )

◆ ddns_updates()

int ddns_updates ( struct packet * ,
struct lease * ,
struct lease * ,
struct iasubopt * ,
struct iasubopt * ,
struct option_state *  )

◆ decline_lease6()

isc_result_t decline_lease6 ( struct ipv6_pool * pool,
struct iasubopt * lease )

Definition at line 1776 of file mdb6.c.

◆ decline_leases()

isc_result_t decline_leases ( struct ia_xx * ia)

Definition at line 2368 of file mdb6.c.

◆ decode_ethernet_header()

ssize_t decode_ethernet_header ( struct interface_info * ,
unsigned char * ,
unsigned ,
struct hardware *  )

◆ decode_hw_header()

ssize_t decode_hw_header ( struct interface_info * ,
unsigned char * ,
unsigned ,
struct hardware *  )

◆ decode_tr_header()

ssize_t decode_tr_header ( struct interface_info * ,
unsigned char * ,
unsigned ,
struct hardware *  )

◆ decode_udp_ip_header()

ssize_t decode_udp_ip_header ( struct interface_info * ,
unsigned char * ,
unsigned ,
struct sockaddr_in * ,
unsigned ,
unsigned * ,
int  )

◆ delete_class()

isc_result_t delete_class ( struct class * cp,
int commit )

Definition at line 458 of file mdb.c.

◆ delete_fqdn6_option()

void delete_fqdn6_option ( struct universe * universe,
struct option_state * options,
int code )

Definition at line 3555 of file options.c.

◆ delete_group()

isc_result_t delete_group ( struct group_object * group,
int writep )

Definition at line 35 of file memory.c.

◆ delete_hashed_option()

void delete_hashed_option ( struct universe * universe,
struct option_state * options,
int code )

Definition at line 2918 of file options.c.

◆ delete_host()

isc_result_t delete_host ( struct host_decl * hd,
int commit )

Definition at line 490 of file mdb.c.

◆ delete_linked_option()

void delete_linked_option ( struct universe * universe,
struct option_state * options,
int code )

Definition at line 3949 of file options.c.

◆ delete_option()

void delete_option ( struct universe * universe,
struct option_state * options,
int code )

Definition at line 2906 of file options.c.

◆ destroy_client_lease()

void destroy_client_lease ( struct client_lease * lease)

Definition at line 4181 of file dhclient.c.

◆ detach()

void detach ( void )

Definition at line 5233 of file dhclient.c.

◆ dhc6_lease_destroy()

void dhc6_lease_destroy ( struct dhc6_lease ** src,
const char * file,
int line )

◆ dhcid_fromlease()

isc_result_t dhcid_fromlease ( struct data_string * ,
struct data_string *  )

◆ dhcid_tolease()

void dhcid_tolease ( struct data_string * ,
struct data_string *  )

◆ dhclient_interface_discovery_hook()

int dhclient_interface_discovery_hook ( struct interface_info * tmp)

Definition at line 5423 of file dhclient.c.

◆ dhclient_interface_shutdown_hook()

int dhclient_interface_shutdown_hook ( struct interface_info * interface)

Definition at line 5416 of file dhclient.c.

◆ dhclient_interface_startup_hook()

isc_result_t dhclient_interface_startup_hook ( struct interface_info * interface)

Definition at line 5466 of file dhclient.c.

◆ dhclient_schedule_updates()

void dhclient_schedule_updates ( struct client_state * client,
struct iaddr * addr,
int offset )

◆ dhcp()

void dhcp ( struct packet * packet)

Definition at line 2289 of file dhclient.c.

◆ dhcp4o6_start()

void dhcp4o6_start ( void )

◆ dhcp_check_relayport()

u_int16_t dhcp_check_relayport ( struct packet * packet)

◆ dhcp_class_create()

isc_result_t dhcp_class_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 2252 of file omapi.c.

◆ dhcp_class_destroy()

isc_result_t dhcp_class_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 1984 of file omapi.c.

◆ dhcp_class_get_value()

isc_result_t dhcp_class_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 1959 of file omapi.c.

◆ dhcp_class_lookup()

isc_result_t dhcp_class_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 2246 of file omapi.c.

◆ dhcp_class_remove()

isc_result_t dhcp_class_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 2271 of file omapi.c.

◆ dhcp_class_set_value()

isc_result_t dhcp_class_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 1948 of file omapi.c.

◆ dhcp_class_signal_handler()

isc_result_t dhcp_class_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 2100 of file omapi.c.

◆ dhcp_class_stuff_values()

isc_result_t dhcp_class_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 2146 of file omapi.c.

◆ dhcp_common_objects_setup()

void dhcp_common_objects_setup ( void )

◆ dhcp_control_create()

isc_result_t dhcp_control_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 588 of file comapi.c.

◆ dhcp_control_destroy()

isc_result_t dhcp_control_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 494 of file comapi.c.

◆ dhcp_control_get_value()

isc_result_t dhcp_control_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 469 of file comapi.c.

◆ dhcp_control_lookup()

isc_result_t dhcp_control_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 557 of file comapi.c.

◆ dhcp_control_remove()

isc_result_t dhcp_control_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 595 of file comapi.c.

◆ dhcp_control_set_value()

isc_result_t dhcp_control_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 434 of file comapi.c.

◆ dhcp_control_signal_handler()

isc_result_t dhcp_control_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 504 of file comapi.c.

◆ dhcp_control_stuff_values()

isc_result_t dhcp_control_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 524 of file comapi.c.

◆ dhcp_db_objects_setup()

void dhcp_db_objects_setup ( void )

Definition at line 57 of file omapi.c.

◆ dhcp_failover_ack_queue_remove()

void dhcp_failover_ack_queue_remove ( dhcp_failover_state_t * ,
struct lease *  )

◆ dhcp_failover_auto_partner_down()

void dhcp_failover_auto_partner_down ( void * vs)

◆ dhcp_failover_generate_update_queue()

isc_result_t dhcp_failover_generate_update_queue ( dhcp_failover_state_t * ,
int  )

◆ dhcp_failover_keepalive()

void dhcp_failover_keepalive ( void * )

◆ dhcp_failover_link_destroy()

isc_result_t dhcp_failover_link_destroy ( omapi_object_t * ,
const char * ,
int  )

◆ dhcp_failover_link_get_value()

isc_result_t dhcp_failover_link_get_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_value_t **  )

◆ dhcp_failover_link_initiate()

isc_result_t dhcp_failover_link_initiate ( omapi_object_t * )

◆ dhcp_failover_link_set_value()

isc_result_t dhcp_failover_link_set_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_typed_data_t *  )

◆ dhcp_failover_link_signal()

isc_result_t dhcp_failover_link_signal ( omapi_object_t * ,
const char * ,
va_list  )

◆ dhcp_failover_link_startup_timeout()

void dhcp_failover_link_startup_timeout ( void * )

◆ dhcp_failover_link_stuff_values()

isc_result_t dhcp_failover_link_stuff_values ( omapi_object_t * ,
omapi_object_t * ,
omapi_object_t *  )

◆ dhcp_failover_listen()

isc_result_t dhcp_failover_listen ( omapi_object_t * )

◆ dhcp_failover_listener_destroy()

isc_result_t dhcp_failover_listener_destroy ( omapi_object_t * ,
const char * ,
int  )

◆ dhcp_failover_listener_get_value()

isc_result_t dhcp_failover_listener_get_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_value_t **  )

◆ dhcp_failover_listener_restart()

void dhcp_failover_listener_restart ( void * )

◆ dhcp_failover_listener_set_value()

isc_result_t dhcp_failover_listener_set_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_typed_data_t *  )

◆ dhcp_failover_listener_signal()

isc_result_t dhcp_failover_listener_signal ( omapi_object_t * ,
const char * ,
va_list  )

◆ dhcp_failover_listener_stuff()

isc_result_t dhcp_failover_listener_stuff ( omapi_object_t * ,
omapi_object_t * ,
omapi_object_t *  )

◆ dhcp_failover_make_option()

failover_option_t failover_option_t * dhcp_failover_make_option ( unsigned ,
char * ,
unsigned * ,
unsigned ,
... )

◆ dhcp_failover_message_name()

const char * dhcp_failover_message_name ( unsigned )

◆ dhcp_failover_option_name()

const char * dhcp_failover_option_name ( unsigned )

◆ dhcp_failover_option_printf()

failover_option_t * dhcp_failover_option_printf ( unsigned ,
char * ,
unsigned * ,
unsigned ,
const char * ,
... )

◆ dhcp_failover_peer_state_changed()

isc_result_t dhcp_failover_peer_state_changed ( dhcp_failover_state_t * ,
failover_message_t *  )

◆ dhcp_failover_pool_check()

void dhcp_failover_pool_check ( struct pool * )

◆ dhcp_failover_pool_rebalance()

void dhcp_failover_pool_rebalance ( void * )

◆ dhcp_failover_process_bind_ack()

isc_result_t dhcp_failover_process_bind_ack ( dhcp_failover_state_t * ,
failover_message_t *  )

◆ dhcp_failover_process_bind_update()

isc_result_t dhcp_failover_process_bind_update ( dhcp_failover_state_t * ,
failover_message_t *  )

◆ dhcp_failover_process_update_done()

isc_result_t dhcp_failover_process_update_done ( dhcp_failover_state_t * ,
failover_message_t *  )

◆ dhcp_failover_process_update_request()

isc_result_t dhcp_failover_process_update_request ( dhcp_failover_state_t * ,
failover_message_t *  )

◆ dhcp_failover_process_update_request_all()

isc_result_t dhcp_failover_process_update_request_all ( dhcp_failover_state_t * ,
failover_message_t *  )

◆ dhcp_failover_put_message()

isc_result_t dhcp_failover_put_message ( dhcp_failover_link_t * ,
omapi_object_t * ,
int ,
u_int32_t ,
... )

◆ dhcp_failover_queue_ack()

int dhcp_failover_queue_ack ( dhcp_failover_state_t * ,
failover_message_t * msg )

◆ dhcp_failover_queue_update()

int dhcp_failover_queue_update ( struct lease * ,
int  )

◆ dhcp_failover_reconnect()

void dhcp_failover_reconnect ( void * )

◆ dhcp_failover_recover_done()

void dhcp_failover_recover_done ( void * )

◆ dhcp_failover_register()

isc_result_t dhcp_failover_register ( omapi_object_t * )

◆ dhcp_failover_reject_reason_print()

const char * dhcp_failover_reject_reason_print ( int )

◆ dhcp_failover_rescind_updates()

void dhcp_failover_rescind_updates ( dhcp_failover_state_t * )

◆ dhcp_failover_sanity_check()

void dhcp_failover_sanity_check ( void )

◆ dhcp_failover_send_acks()

int dhcp_failover_send_acks ( dhcp_failover_state_t * )

◆ dhcp_failover_send_bind_ack()

isc_result_t dhcp_failover_send_bind_ack ( dhcp_failover_state_t * ,
failover_message_t * ,
int ,
const char *  )

◆ dhcp_failover_send_bind_update()

isc_result_t dhcp_failover_send_bind_update ( dhcp_failover_state_t * ,
struct lease *  )

◆ dhcp_failover_send_connect()

isc_result_t dhcp_failover_send_connect ( omapi_object_t * )

◆ dhcp_failover_send_connectack()

isc_result_t dhcp_failover_send_connectack ( omapi_object_t * ,
dhcp_failover_state_t * ,
int ,
const char *  )

◆ dhcp_failover_send_contact()

void dhcp_failover_send_contact ( void * )

◆ dhcp_failover_send_disconnect()

isc_result_t dhcp_failover_send_disconnect ( omapi_object_t * ,
int ,
const char *  )

◆ dhcp_failover_send_poolreq()

isc_result_t dhcp_failover_send_poolreq ( dhcp_failover_state_t * )

◆ dhcp_failover_send_poolresp()

isc_result_t dhcp_failover_send_poolresp ( dhcp_failover_state_t * ,
int  )

◆ dhcp_failover_send_state()

isc_result_t dhcp_failover_send_state ( dhcp_failover_state_t * )

◆ dhcp_failover_send_update_done()

isc_result_t dhcp_failover_send_update_done ( dhcp_failover_state_t * )

◆ dhcp_failover_send_update_request()

isc_result_t dhcp_failover_send_update_request ( dhcp_failover_state_t * )

◆ dhcp_failover_send_update_request_all()

isc_result_t dhcp_failover_send_update_request_all ( dhcp_failover_state_t * )

◆ dhcp_failover_send_updates()

isc_result_t dhcp_failover_send_updates ( dhcp_failover_state_t * )

◆ dhcp_failover_set_service_state()

isc_result_t dhcp_failover_set_service_state ( dhcp_failover_state_t * state)

◆ dhcp_failover_set_state()

isc_result_t dhcp_failover_set_state ( dhcp_failover_state_t * ,
enum failover_state )

◆ dhcp_failover_startup()

void dhcp_failover_startup ( void )

◆ dhcp_failover_startup_timeout()

void dhcp_failover_startup_timeout ( void * )

◆ dhcp_failover_state_create()

isc_result_t dhcp_failover_state_create ( omapi_object_t ** ,
omapi_object_t *  )

◆ dhcp_failover_state_destroy()

isc_result_t dhcp_failover_state_destroy ( omapi_object_t * ,
const char * ,
int  )

◆ dhcp_failover_state_get_value()

isc_result_t dhcp_failover_state_get_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_value_t **  )

◆ dhcp_failover_state_lookup()

isc_result_t dhcp_failover_state_lookup ( omapi_object_t ** ,
omapi_object_t * ,
omapi_object_t *  )

◆ dhcp_failover_state_match()

int dhcp_failover_state_match ( dhcp_failover_state_t * ,
u_int8_t * ,
unsigned  )

◆ dhcp_failover_state_match_by_name()

int dhcp_failover_state_match_by_name ( dhcp_failover_state_t * ,
failover_option_t *  )

◆ dhcp_failover_state_name_print()

const char * dhcp_failover_state_name_print ( enum failover_state)

◆ dhcp_failover_state_pool_check()

int dhcp_failover_state_pool_check ( dhcp_failover_state_t * )

◆ dhcp_failover_state_remove()

isc_result_t dhcp_failover_state_remove ( omapi_object_t * ,
omapi_object_t *  )

◆ dhcp_failover_state_set_value()

isc_result_t dhcp_failover_state_set_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_typed_data_t *  )

◆ dhcp_failover_state_signal()

isc_result_t dhcp_failover_state_signal ( omapi_object_t * ,
const char * ,
va_list  )

◆ dhcp_failover_state_stuff()

isc_result_t dhcp_failover_state_stuff ( omapi_object_t * ,
omapi_object_t * ,
omapi_object_t *  )

◆ dhcp_failover_state_transition()

isc_result_t dhcp_failover_state_transition ( dhcp_failover_state_t * ,
const char *  )

◆ dhcp_failover_timeout()

void dhcp_failover_timeout ( void * )

◆ dhcp_failover_toack_queue_timeout()

void dhcp_failover_toack_queue_timeout ( void * )

◆ dhcp_failover_write_all_states()

int dhcp_failover_write_all_states ( void )

◆ dhcp_group_create()

isc_result_t dhcp_group_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 398 of file comapi.c.

◆ dhcp_group_destroy()

isc_result_t dhcp_group_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 226 of file comapi.c.

◆ dhcp_group_get_value()

isc_result_t dhcp_group_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 201 of file comapi.c.

◆ dhcp_group_lookup()

isc_result_t dhcp_group_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 333 of file comapi.c.

◆ dhcp_group_remove()

isc_result_t dhcp_group_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 414 of file comapi.c.

◆ dhcp_group_set_value()

isc_result_t dhcp_group_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 127 of file comapi.c.

◆ dhcp_group_signal_handler()

isc_result_t dhcp_group_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 256 of file comapi.c.

◆ dhcp_group_stuff_values()

isc_result_t dhcp_group_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 301 of file comapi.c.

◆ dhcp_host_create()

isc_result_t dhcp_host_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 1576 of file omapi.c.

◆ dhcp_host_destroy()

isc_result_t dhcp_host_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 1190 of file omapi.c.

◆ dhcp_host_get_value()

isc_result_t dhcp_host_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 1121 of file omapi.c.

◆ dhcp_host_lookup()

isc_result_t dhcp_host_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 1369 of file omapi.c.

◆ dhcp_host_remove()

isc_result_t dhcp_host_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 1592 of file omapi.c.

◆ dhcp_host_set_value()

isc_result_t dhcp_host_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 926 of file omapi.c.

◆ dhcp_host_signal_handler()

isc_result_t dhcp_host_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 1218 of file omapi.c.

◆ dhcp_host_stuff_values()

isc_result_t dhcp_host_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 1266 of file omapi.c.

◆ dhcp_interface_create()

isc_result_t dhcp_interface_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 1453 of file discover.c.

◆ dhcp_interface_destroy()

isc_result_t dhcp_interface_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 1270 of file discover.c.

◆ dhcp_interface_get_value()

isc_result_t dhcp_interface_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 1262 of file discover.c.

◆ dhcp_interface_lookup()

isc_result_t dhcp_interface_lookup ( omapi_object_t ** ip,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 1369 of file discover.c.

◆ dhcp_interface_remove()

isc_result_t dhcp_interface_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 1469 of file discover.c.

◆ dhcp_interface_set_value()

isc_result_t dhcp_interface_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 1225 of file discover.c.

◆ dhcp_interface_signal_handler()

isc_result_t dhcp_interface_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 1299 of file discover.c.

◆ dhcp_interface_stuff_values()

isc_result_t dhcp_interface_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 1335 of file discover.c.

◆ dhcp_io_shutdown()

isc_result_t dhcp_io_shutdown ( omapi_object_t * obj,
void * foo )

Definition at line 1640 of file dhcpd.c.

◆ dhcp_lease_create()

isc_result_t dhcp_lease_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 914 of file omapi.c.

◆ dhcp_lease_destroy()

isc_result_t dhcp_lease_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 467 of file omapi.c.

◆ dhcp_lease_free()

isc_result_t dhcp_lease_free ( omapi_object_t * ,
const char * ,
int  )

◆ dhcp_lease_get()

isc_result_t dhcp_lease_get ( omapi_object_t ** ,
const char * ,
int  )

◆ dhcp_lease_get_value()

isc_result_t dhcp_lease_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 391 of file omapi.c.

◆ dhcp_lease_lookup()

isc_result_t dhcp_lease_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 748 of file omapi.c.

◆ dhcp_lease_remove()

isc_result_t dhcp_lease_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 920 of file omapi.c.

◆ dhcp_lease_set_value()

isc_result_t dhcp_lease_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 200 of file omapi.c.

◆ dhcp_lease_signal_handler()

isc_result_t dhcp_lease_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 541 of file omapi.c.

◆ dhcp_lease_stuff_values()

isc_result_t dhcp_lease_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 563 of file omapi.c.

◆ dhcp_option_ev_name()

int dhcp_option_ev_name ( char * buf,
size_t buflen,
struct option * option )

Definition at line 5182 of file dhclient.c.

◆ dhcp_pool_create()

isc_result_t dhcp_pool_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 1777 of file omapi.c.

◆ dhcp_pool_destroy()

isc_result_t dhcp_pool_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 1654 of file omapi.c.

◆ dhcp_pool_get_value()

isc_result_t dhcp_pool_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 1632 of file omapi.c.

◆ dhcp_pool_lookup()

isc_result_t dhcp_pool_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 1765 of file omapi.c.

◆ dhcp_pool_remove()

isc_result_t dhcp_pool_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 1783 of file omapi.c.

◆ dhcp_pool_set_value()

isc_result_t dhcp_pool_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 1607 of file omapi.c.

◆ dhcp_pool_signal_handler()

isc_result_t dhcp_pool_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 1697 of file omapi.c.

◆ dhcp_pool_stuff_values()

isc_result_t dhcp_pool_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 1719 of file omapi.c.

◆ dhcp_reply()

void dhcp_reply ( struct lease * lease)

Definition at line 3924 of file dhcp.c.

◆ dhcp_set_control_state()

isc_result_t dhcp_set_control_state ( control_object_state_t oldstate,
control_object_state_t newstate )

Definition at line 5616 of file dhclient.c.

◆ dhcp_shared_network_create()

isc_result_t dhcp_shared_network_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 896 of file comapi.c.

◆ dhcp_shared_network_destroy()

isc_result_t dhcp_shared_network_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 797 of file comapi.c.

◆ dhcp_shared_network_get_value()

isc_result_t dhcp_shared_network_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 773 of file comapi.c.

◆ dhcp_shared_network_lookup()

isc_result_t dhcp_shared_network_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 883 of file comapi.c.

◆ dhcp_shared_network_remove()

isc_result_t dhcp_shared_network_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 902 of file comapi.c.

◆ dhcp_shared_network_set_value()

isc_result_t dhcp_shared_network_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 747 of file comapi.c.

◆ dhcp_shared_network_signal_handler()

isc_result_t dhcp_shared_network_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 835 of file comapi.c.

◆ dhcp_shared_network_stuff_values()

isc_result_t dhcp_shared_network_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 859 of file comapi.c.

◆ dhcp_subclass_create()

isc_result_t dhcp_subclass_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 2360 of file omapi.c.

◆ dhcp_subclass_destroy()

isc_result_t dhcp_subclass_destroy ( omapi_object_t * ,
const char * ,
int  )

◆ dhcp_subclass_get_value()

isc_result_t dhcp_subclass_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 2299 of file omapi.c.

◆ dhcp_subclass_lookup()

isc_result_t dhcp_subclass_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 2351 of file omapi.c.

◆ dhcp_subclass_remove()

isc_result_t dhcp_subclass_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 2378 of file omapi.c.

◆ dhcp_subclass_set_value()

isc_result_t dhcp_subclass_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 2287 of file omapi.c.

◆ dhcp_subclass_signal_handler()

isc_result_t dhcp_subclass_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 2324 of file omapi.c.

◆ dhcp_subclass_stuff_values()

isc_result_t dhcp_subclass_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 2334 of file omapi.c.

◆ dhcp_subnet_create()

isc_result_t dhcp_subnet_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 735 of file comapi.c.

◆ dhcp_subnet_destroy()

isc_result_t dhcp_subnet_destroy ( omapi_object_t * h,
const char * file,
int line )

Definition at line 652 of file comapi.c.

◆ dhcp_subnet_get_value()

isc_result_t dhcp_subnet_get_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_value_t ** value )

Definition at line 629 of file comapi.c.

◆ dhcp_subnet_lookup()

isc_result_t dhcp_subnet_lookup ( omapi_object_t ** lp,
omapi_object_t * id,
omapi_object_t * ref )

Definition at line 722 of file comapi.c.

◆ dhcp_subnet_remove()

isc_result_t dhcp_subnet_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 741 of file comapi.c.

◆ dhcp_subnet_set_value()

isc_result_t dhcp_subnet_set_value ( omapi_object_t * h,
omapi_object_t * id,
omapi_data_string_t * name,
omapi_typed_data_t * value )

Definition at line 603 of file comapi.c.

◆ dhcp_subnet_signal_handler()

isc_result_t dhcp_subnet_signal_handler ( omapi_object_t * h,
const char * name,
va_list ap )

Definition at line 675 of file comapi.c.

◆ dhcp_subnet_stuff_values()

isc_result_t dhcp_subnet_stuff_values ( omapi_object_t * c,
omapi_object_t * id,
omapi_object_t * h )

Definition at line 698 of file comapi.c.

◆ dhcpack()

void dhcpack ( struct packet * packet)

Definition at line 1888 of file dhclient.c.

◆ dhcpd_interface_setup_hook()

int dhcpd_interface_setup_hook ( struct interface_info * ip,
struct iaddr * ia )

Definition at line 1578 of file dhcpd.c.

◆ dhcpdecline()

void dhcpdecline ( struct packet * packet,
int ms_nulltp )

Definition at line 964 of file dhcp.c.

◆ dhcpdiscover()

void dhcpdiscover ( struct packet * packet,
int ms_nulltp )

Definition at line 330 of file dhcp.c.

◆ dhcpinform()

void dhcpinform ( struct packet * packet,
int ms_nulltp )

Definition at line 1117 of file dhcp.c.

◆ dhcpleasequery()

void dhcpleasequery ( struct packet * packet,
int ms_nulltp )

Definition at line 128 of file dhcpleasequery.c.

◆ dhcpnak()

void dhcpnak ( struct packet * packet)

Definition at line 2848 of file dhclient.c.

◆ dhcpoffer()

void dhcpoffer ( struct packet * packet)

Definition at line 2576 of file dhclient.c.

◆ dhcprelease()

void dhcprelease ( struct packet * packet,
int ms_nulltp )

Definition at line 810 of file dhcp.c.

◆ dhcprequest()

void dhcprequest ( struct packet * packet,
int ms_nulltp,
struct lease * ip_lease )

Definition at line 488 of file dhcp.c.

◆ dhcpv4_client_assignments()

void dhcpv4_client_assignments ( void )

Definition at line 6012 of file dhclient.c.

◆ dhcpv6()

void dhcpv6 ( struct packet * )

◆ dhcpv6_client_assignments()

void dhcpv6_client_assignments ( void )

◆ dhcpv6_leasequery()

void dhcpv6_leasequery ( struct data_string * ,
struct packet *  )

◆ discover_interfaces()

void discover_interfaces ( int state)

Definition at line 571 of file discover.c.

◆ dispatch()

void dispatch ( void )

Definition at line 109 of file dispatch.c.

◆ dns_host_entry_allocate()

int dns_host_entry_allocate ( struct dns_host_entry ** ptr,
const char * hostname,
const char * file,
int line )

Definition at line 768 of file alloc.c.

◆ dns_host_entry_dereference()

int dns_host_entry_dereference ( struct dns_host_entry ** ptr,
const char * file,
int line )

Definition at line 813 of file alloc.c.

◆ dns_host_entry_reference()

int dns_host_entry_reference ( struct dns_host_entry ** ptr,
struct dns_host_entry * bp,
const char * file,
int line )

Definition at line 785 of file alloc.c.

◆ dns_zone_allocate()

int dns_zone_allocate ( struct dns_zone ** ptr,
const char * file,
int line )

Definition at line 1134 of file alloc.c.

◆ dns_zone_dereference()

int dns_zone_dereference ( struct dns_zone ** ptr,
const char * file,
int line )

Definition at line 698 of file dns.c.

◆ dns_zone_lookup()

isc_result_t dns_zone_lookup ( struct dns_zone ** zone,
const char * name )

Definition at line 665 of file dns.c.

◆ dns_zone_reference()

int dns_zone_reference ( struct dns_zone ** ptr,
struct dns_zone * bp,
const char * file,
int line )

Definition at line 1166 of file alloc.c.

◆ do_packet()

void do_packet ( struct interface_info * interface,
struct dhcp_packet * packet,
unsigned len,
unsigned int from_port,
struct iaddr from,
struct hardware * hfrom )

Definition at line 4045 of file options.c.

◆ do_packet6()

void do_packet6 ( struct interface_info * ,
const char * ,
int ,
int ,
const struct iaddr * ,
isc_boolean_t  )

◆ do_release()

void do_release ( struct client_state * client)

Definition at line 5337 of file dhclient.c.

◆ dump_packet()

void dump_packet ( struct packet * )

◆ dump_packet_option()

void dump_packet_option ( struct option_cache * ,
struct packet * ,
struct lease * ,
struct client_state * ,
struct option_state * ,
struct option_state * ,
struct binding_scope ** ,
struct universe * ,
void *  )

◆ dump_raw()

void dump_raw ( const unsigned char * ,
unsigned  )

◆ dump_subnets()

void dump_subnets ( void )

Definition at line 2933 of file mdb.c.

◆ echo_client_id()

void echo_client_id ( struct packet * packet,
struct lease * lease,
struct option_state * in_options,
struct option_state * out_options )

Adds a dhcp-client-id option to a set of options Given a set of input options, it searches for echo-client-id. If it is defined and enabled, the given packet is searched for dhcp-client-id. If the option is found it is replicated into the given set of output options. This allows us to provide compliance with RFC 6842. It is called when we ack or nak a lease. In the latter case we may or may not have created the requisite scope to lookup echo-client-id.

Note the flag packet.sv_echo_client_id is set to reflect the configuration option. This bypases inaccessiblity of server_universe in cons_options() which must amend the PRL (when not empty) if echoing is enabled.

Parameters
packetinbound packet received from the client
leaselease associated with this client (if one)
in_optionsoptions in which to search for echo-client-id
out_optionsoptions to which to save the client-id

Definition at line 2058 of file dhcp.c.

◆ end_parse()

isc_result_t end_parse ( struct parse ** cfile)

Definition at line 103 of file conflex.c.

◆ enter_class()

isc_result_t enter_class ( struct class * cd,
int dynamicp,
int commit )

Definition at line 72 of file mdb.c.

◆ enter_dns_host()

int enter_dns_host ( struct dns_host_entry ** dh,
const char * name )

Definition at line 204 of file tree.c.

◆ enter_dns_zone()

isc_result_t enter_dns_zone ( struct dns_zone * zone)

Definition at line 640 of file dns.c.

◆ enter_failover_peer()

isc_result_t enter_failover_peer ( dhcp_failover_state_t * )

◆ enter_host()

isc_result_t enter_host ( struct host_decl * hd,
int dynamicp,
int commit )

Definition at line 221 of file mdb.c.

◆ enter_lease()

void enter_lease ( struct lease * lease)

Definition at line 1112 of file mdb.c.

◆ enter_shared_network()

void enter_shared_network ( struct shared_network * share)

Definition at line 1055 of file mdb.c.

◆ enter_subnet()

void enter_subnet ( struct subnet * subnet)

Definition at line 1008 of file mdb.c.

◆ eval_network_statements()

void eval_network_statements ( struct option_state ** network_options,
struct packet * packet,
struct group * network_group )

Builds option set from statements at the global and network scope.

Set up an option state list based on the global and network scopes. These are primarily used by NAK logic to locate dhcp-server-id and echo-client-id.

We don't go through all possible options - in particualr we skip the hosts and we don't include the lease to avoid making changes to it. This means that using these, we won't get the correct server id if the admin puts them on hosts or builds the server id with information from the lease.

As this is a fallback function (used to handle NAKs or sort out server id mismatch in failover) and requires configuration by the admin, it should be okay.

Parameters
network_optionsoption_state to which options will be added. If it refers to NULL, it will be allocated. Caller is responsible to delete it.
packetinbound packet
network_groupscope group to use if packet->shared_network is null.

Definition at line 5573 of file dhcp.c.

◆ evaluate_boolean_expression()

int evaluate_boolean_expression ( int * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct expression * expr )

Definition at line 694 of file tree.c.

◆ evaluate_boolean_expression_result()

int evaluate_boolean_expression_result ( int * ignorep,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct expression * expr )

Definition at line 2780 of file tree.c.

◆ evaluate_boolean_option_cache()

int evaluate_boolean_option_cache ( int * ignorep,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct option_cache * oc,
const char * file,
int line )

Definition at line 2733 of file tree.c.

◆ evaluate_data_expression()

int evaluate_data_expression ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct expression * expr,
const char * file,
int line )

Definition at line 1126 of file tree.c.

◆ evaluate_expression()

int evaluate_expression ( struct binding_value ** result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct expression * expr,
const char * file,
int line )

Definition at line 500 of file tree.c.

◆ evaluate_numeric_expression()

int evaluate_numeric_expression ( unsigned long * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct expression * expr )

Definition at line 2229 of file tree.c.

◆ evaluate_option_cache()

int evaluate_option_cache ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct option_cache * oc,
const char * file,
int line )

Definition at line 2699 of file tree.c.

◆ executable_statement_allocate()

int executable_statement_allocate ( struct executable_statement ** ptr,
const char * file,
int line )

Definition at line 958 of file alloc.c.

◆ executable_statement_dereference()

int executable_statement_dereference ( struct executable_statement ** ptr,
const char * file,
int line )

Definition at line 630 of file execute.c.

◆ executable_statement_foreach()

int executable_statement_foreach ( struct executable_statement * stmt,
int(* callback )(struct executable_statement *, void *, int),
void * vp,
int condp )

Definition at line 1120 of file execute.c.

◆ executable_statement_reference()

int executable_statement_reference ( struct executable_statement ** ptr,
struct executable_statement * bp,
const char * file,
int line )

Definition at line 972 of file alloc.c.

◆ execute_statements()

int execute_statements ( struct binding_value ** result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * out_options,
struct binding_scope ** scope,
struct executable_statement * statements,
struct on_star * on_star )

Definition at line 35 of file execute.c.

◆ execute_statements_in_scope()

void execute_statements_in_scope ( struct binding_value ** result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * out_options,
struct binding_scope ** scope,
struct group * group,
struct group * limiting_group,
struct on_star * on_star )

Definition at line 570 of file execute.c.

◆ expire_all_pools()

void expire_all_pools ( void )

Definition at line 2835 of file mdb.c.

◆ expire_lease6()

isc_result_t expire_lease6 ( struct iasubopt ** leasep,
struct ipv6_pool * pool,
time_t now )

Definition at line 1742 of file mdb6.c.

◆ expr_valid_for_context()

int expr_valid_for_context ( struct expression * ,
enum expression_context )

◆ expression_allocate()

int expression_allocate ( struct expression ** cptr,
const char * file,
int line )

Definition at line 426 of file alloc.c.

◆ expression_context()

Definition at line 3206 of file tree.c.

◆ expression_dereference()

void expression_dereference ( struct expression ** eptr,
const char * file,
int line )

Definition at line 2813 of file tree.c.

◆ expression_reference()

int expression_reference ( struct expression ** ptr,
struct expression * src,
const char * file,
int line )

Definition at line 446 of file alloc.c.

◆ failover_print()

void failover_print ( char * ,
unsigned * ,
unsigned ,
const char *  )

◆ fallback_discard()

isc_result_t fallback_discard ( omapi_object_t * )

◆ find_binding()

struct binding * find_binding ( struct binding_scope * scope,
const char * name )

Definition at line 3755 of file tree.c.

◆ find_bound_string()

int find_bound_string ( struct data_string * value,
struct binding_scope * scope,
const char * name )

Definition at line 4103 of file tree.c.

◆ find_cached_zone()

isc_result_t find_cached_zone ( dhcp_ddns_cb_t * ,
int  )

◆ find_class()

isc_result_t find_class ( struct class ** c,
const char * s,
const char * file,
int line )

Definition at line 1542 of file dhclient.c.

◆ find_enumeration()

struct enumeration * find_enumeration ( const char * name,
int length )

Definition at line 47 of file parse.c.

◆ find_enumeration_value()

struct enumeration_value * find_enumeration_value ( const char * name,
int length,
unsigned * widthp,
const char * value )

Definition at line 58 of file parse.c.

◆ find_failover_peer()

isc_result_t find_failover_peer ( dhcp_failover_state_t ** ,
const char * ,
const char * ,
int  )

◆ find_grouped_subnet()

int find_grouped_subnet ( struct subnet ** sp,
struct shared_network * share,
struct iaddr addr,
const char * file,
int line )

Definition at line 953 of file mdb.c.

◆ find_host_for_network()

int find_host_for_network ( struct subnet ** sp,
struct host_decl ** host,
struct iaddr * addr,
struct shared_network * share )

Definition at line 736 of file mdb.c.

◆ find_hosts6()

int find_hosts6 ( struct host_decl ** host,
struct packet * packet,
const struct data_string * client_id,
char * file,
int line )

Definition at line 3015 of file mdb6.c.

◆ find_hosts_by_haddr()

int find_hosts_by_haddr ( struct host_decl ** hp,
int htype,
const unsigned char * haddr,
unsigned hlen,
const char * file,
int line )

Definition at line 632 of file mdb.c.

◆ find_hosts_by_option()

int find_hosts_by_option ( struct host_decl ** hp,
struct packet * packet,
struct option_state * opt_state,
const char * file,
int line )

Definition at line 660 of file mdb.c.

◆ find_hosts_by_uid()

int find_hosts_by_uid ( struct host_decl ** hp,
const unsigned char * data,
unsigned len,
const char * file,
int line )

Definition at line 652 of file mdb.c.

◆ find_ipv6_pool()

isc_result_t find_ipv6_pool ( struct ipv6_pool ** pool,
u_int16_t type,
const struct in6_addr * addr )

Definition at line 2291 of file mdb6.c.

◆ find_lease()

int find_lease ( struct lease ** lp,
struct packet * packet,
struct shared_network * share,
int * ours,
int * peer_has_leases,
struct lease * ip_lease_in,
const char * file,
int line )

Definition at line 4213 of file dhcp.c.

◆ find_lease_by_hw_addr()

int find_lease_by_hw_addr ( struct lease ** lp,
const unsigned char * hwaddr,
unsigned hwlen,
const char * file,
int line )

Definition at line 2067 of file mdb.c.

◆ find_lease_by_ip_addr()

int find_lease_by_ip_addr ( struct lease ** lp,
struct iaddr addr,
const char * file,
int line )

Definition at line 2052 of file mdb.c.

◆ find_lease_by_uid()

int find_lease_by_uid ( struct lease ** lp,
const unsigned char * uid,
unsigned len,
const char * file,
int line )

Definition at line 2059 of file mdb.c.

◆ find_matching_case()

int find_matching_case ( struct executable_statement ** ep,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * out_options,
struct binding_scope ** scope,
struct expression * expr,
struct executable_statement * stmt )

Definition at line 1042 of file execute.c.

◆ find_option_universe()

struct universe * find_option_universe ( struct option * eopt,
const char * uname )

Definition at line 292 of file options.c.

◆ find_subnet()

int find_subnet ( struct subnet ** sp,
struct iaddr addr,
const char * file,
int line )

Definition at line 1567 of file dhclient.c.

◆ finish()

void finish ( char ret)

Definition at line 5222 of file dhclient.c.

◆ finish_v6only()

void finish_v6only ( void * cpp)

Definition at line 1755 of file dhclient.c.

◆ first_name_server()

struct name_server * first_name_server ( void )

Definition at line 169 of file resolv.c.

◆ forget_zone()

void forget_zone ( struct dns_zone ** )

◆ form_duid()

isc_result_t form_duid ( struct data_string * duid,
const char * file,
int line )

Definition at line 4381 of file dhclient.c.

◆ format_has_text()

int format_has_text ( const char * )

◆ format_lease_id()

char * format_lease_id ( const unsigned char * s,
unsigned len,
int format,
const char * file,
int line )

Definition at line 1427 of file print.c.

◆ format_min_length()

int format_min_length ( const char * ,
struct option_cache *  )

◆ fqdn6_option_space_encapsulate()

int fqdn6_option_space_encapsulate ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * universe )

Definition at line 3591 of file options.c.

◆ fqdn6_option_space_foreach()

void fqdn6_option_space_foreach ( struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * u,
void * stuff,
void(* func )(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *) )

Definition at line 3569 of file options.c.

◆ fqdn6_universe_decode()

int fqdn6_universe_decode ( struct option_state * options,
const unsigned char * buffer,
unsigned length,
struct universe * u )

Definition at line 3690 of file options.c.

◆ fqdn_option_space_encapsulate()

int fqdn_option_space_encapsulate ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * universe )

Definition at line 3417 of file options.c.

◆ fqdn_universe_decode()

int fqdn_universe_decode ( struct option_state * options,
const unsigned char * buffer,
unsigned length,
struct universe * u )

Definition at line 366 of file options.c.

◆ free_binding_value()

void free_binding_value ( struct binding_value * bv,
const char * file,
int line )

Definition at line 548 of file alloc.c.

◆ free_bindings()

int free_bindings ( struct binding_scope * scope,
const char * file,
int line )

Definition at line 3770 of file tree.c.

◆ free_client_lease()

void free_client_lease ( struct client_lease * lease,
const char * file,
int line )

Definition at line 369 of file alloc.c.

◆ free_dhcp_packet()

void free_dhcp_packet ( struct dhcp_packet * ptr,
const char * file,
int line )

Definition at line 353 of file alloc.c.

◆ free_domain_search_list()

void free_domain_search_list ( struct domain_search_list * ptr,
const char * file,
int line )

Definition at line 337 of file alloc.c.

◆ free_expression()

void free_expression ( struct expression * expr,
const char * file,
int line )

Definition at line 474 of file alloc.c.

◆ free_iaddrcidrnetlist()

isc_result_t free_iaddrcidrnetlist ( struct iaddrcidrnetlist ** result)

Definition at line 503 of file inet.c.

◆ free_lease_state()

void free_lease_state ( struct lease_state * ptr,
const char * file,
int line )

Definition at line 198 of file salloc.c.

◆ free_name_server()

void free_name_server ( struct name_server * ptr,
const char * file,
int line )

Definition at line 292 of file alloc.c.

◆ free_pair()

void free_pair ( pair foo,
const char * file,
int line )

Definition at line 400 of file alloc.c.

◆ free_permit()

void free_permit ( struct permit * permit,
const char * file,
int line )

Definition at line 245 of file salloc.c.

◆ free_protocol()

void free_protocol ( struct protocol * ptr,
const char * file,
int line )

Definition at line 345 of file alloc.c.

◆ free_universe()

void free_universe ( struct universe * ptr,
const char * file,
int line )

Definition at line 329 of file alloc.c.

◆ fundef_allocate()

int fundef_allocate ( struct fundef ** cptr,
const char * file,
int line )

Definition at line 572 of file alloc.c.

◆ fundef_dereference()

int fundef_dereference ( struct fundef ** ptr,
const char * file,
int line )

Definition at line 3829 of file tree.c.

◆ fundef_reference()

int fundef_reference ( struct fundef ** ptr,
struct fundef * src,
const char * file,
int line )

Definition at line 586 of file alloc.c.

◆ generate_new_server_duid()

isc_result_t generate_new_server_duid ( void )

◆ get_client_id()

isc_result_t get_client_id ( struct packet * ,
struct data_string *  )

◆ get_conflict_mask()

u_int16_t get_conflict_mask ( struct option_state * input_options)

◆ get_dhcid()

int get_dhcid ( dhcp_ddns_cb_t * ,
int ,
const u_int8_t * ,
unsigned  )

◆ get_hw_addr()

void get_hw_addr ( struct interface_info * info)

◆ get_hw_addr2()

isc_result_t get_hw_addr2 ( struct interface_info * info)

◆ get_option()

int get_option ( struct data_string * result,
struct universe * universe,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct option_state * options,
struct binding_scope ** scope,
unsigned code,
const char * file,
int line )

Definition at line 2323 of file options.c.

◆ get_option_int()

int get_option_int ( int * result,
struct universe * universe,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct option_state * options,
struct binding_scope ** scope,
unsigned code,
const char * file,
int line )

Definition at line 2358 of file options.c.

◆ get_server_source_address()

void get_server_source_address ( struct in_addr * from,
struct option_state * options,
struct option_state * out_options,
struct packet * packet )

Definition at line 5487 of file dhcp.c.

◆ got_one()

isc_result_t got_one ( omapi_object_t * h)

Definition at line 1093 of file discover.c.

◆ got_one_v6()

isc_result_t got_one_v6 ( omapi_object_t * )

◆ group_allocate()

int group_allocate ( struct group ** ptr,
const char * file,
int line )

Definition at line 145 of file alloc.c.

◆ group_dereference()

int group_dereference ( struct group ** ptr,
const char * file,
int line )

Definition at line 205 of file alloc.c.

◆ group_reference()

int group_reference ( struct group ** ptr,
struct group * bp,
const char * file,
int line )

Definition at line 177 of file alloc.c.

◆ group_writer()

int group_writer ( struct group_object * group)

Definition at line 1280 of file db.c.

◆ hash_dump()

void hash_dump ( struct hash_table * table)

Definition at line 344 of file print.c.

◆ HASH_FUNCTIONS_DECL() [1/3]

HASH_FUNCTIONS_DECL ( iasubopt ,
struct in6_addr * ,
struct iasubopt ,
iasubopt_hash_t  )

◆ HASH_FUNCTIONS_DECL() [2/3]

option_code_hash_t HASH_FUNCTIONS_DECL ( lease_ip ,
const unsigned char * ,
struct lease ,
lease_ip_hash_t  )

◆ HASH_FUNCTIONS_DECL() [3/3]

HASH_FUNCTIONS_DECL ( option_name ,
const char * ,
struct option ,
option_name_hash_t  )

◆ hashed_option_space_encapsulate()

int hashed_option_space_encapsulate ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * universe )

Definition at line 3249 of file options.c.

◆ hashed_option_space_foreach()

void hashed_option_space_foreach ( struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * u,
void * stuff,
void(* func )(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *) )

Definition at line 3832 of file options.c.

◆ hashed_option_state_dereference()

int hashed_option_state_dereference ( struct universe * universe,
struct option_state * state,
const char * file,
int line )

Definition at line 3003 of file options.c.

◆ host_addr()

u_int32_t host_addr ( struct iaddr addr,
struct iaddr mask )

Definition at line 138 of file inet.c.

◆ hw_hash_add()

void hw_hash_add ( struct lease * lease)

Definition at line 2251 of file mdb.c.

◆ hw_hash_delete()

void hw_hash_delete ( struct lease * lease)

Definition at line 2331 of file mdb.c.

◆ ia_add_iasubopt()

isc_result_t ia_add_iasubopt ( struct ia_xx * ia,
struct iasubopt * iasubopt,
const char * file,
int line )

Definition at line 439 of file mdb6.c.

◆ ia_allocate()

isc_result_t ia_allocate ( struct ia_xx ** ia,
u_int32_t iaid,
const char * duid,
unsigned int duid_len,
const char * file,
int line )

Definition at line 339 of file mdb6.c.

◆ ia_dereference()

isc_result_t ia_dereference ( struct ia_xx ** ia,
const char * file,
int line )

Definition at line 403 of file mdb6.c.

◆ ia_equal()

isc_boolean_t ia_equal ( const struct ia_xx * a,
const struct ia_xx * b )

Definition at line 518 of file mdb6.c.

◆ ia_make_key()

isc_result_t ia_make_key ( struct data_string * key,
u_int32_t iaid,
const char * duid,
unsigned int duid_len,
const char * file,
int line )

Definition at line 311 of file mdb6.c.

◆ ia_reference()

isc_result_t ia_reference ( struct ia_xx ** ia,
struct ia_xx * src,
const char * file,
int line )

Definition at line 377 of file mdb6.c.

◆ ia_remove_all_lease()

void ia_remove_all_lease ( struct ia_xx * ia,
const char * file,
int line )

Definition at line 504 of file mdb6.c.

◆ ia_remove_iasubopt()

void ia_remove_iasubopt ( struct ia_xx * ia,
struct iasubopt * iasubopt,
const char * file,
int line )

Definition at line 476 of file mdb6.c.

◆ iasubopt_dereference()

isc_result_t iasubopt_dereference ( struct iasubopt ** iasubopt,
const char * file,
int line )

Definition at line 261 of file mdb6.c.

◆ iasubopt_reference()

isc_result_t iasubopt_reference ( struct iasubopt ** iasubopt,
struct iasubopt * src,
const char * file,
int line )

Definition at line 234 of file mdb6.c.

◆ icmp_echoreply()

isc_result_t icmp_echoreply ( omapi_object_t * h)

Definition at line 204 of file icmp.c.

◆ icmp_echorequest()

int icmp_echorequest ( struct iaddr * addr)

Definition at line 128 of file icmp.c.

◆ icmp_readsocket()

int icmp_readsocket ( omapi_object_t * h)

Definition at line 119 of file icmp.c.

◆ icmp_startup()

void icmp_startup ( int ,
void(*  )(struct iaddr, u_int8_t *, int) )

◆ if_deregister6()

void if_deregister6 ( struct interface_info * info)

◆ if_deregister_receive()

void if_deregister_receive ( struct interface_info * )

◆ if_deregister_send()

void if_deregister_send ( struct interface_info * )

◆ if_readsocket()

int if_readsocket ( omapi_object_t * h)

Definition at line 1048 of file discover.c.

◆ if_register6()

void if_register6 ( struct interface_info * info,
int do_multicast )

◆ if_register_fallback()

void if_register_fallback ( struct interface_info * )

◆ if_register_linklocal6()

void if_register_linklocal6 ( struct interface_info * info)

◆ if_register_lpf()

int if_register_lpf ( struct interface_info * )

◆ if_register_receive()

void if_register_receive ( struct interface_info * )

◆ if_register_send()

void if_register_send ( struct interface_info * )

◆ if_register_socket()

int if_register_socket ( struct interface_info * ,
int ,
int * ,
struct in6_addr *  )

◆ if_reinitialize_fallback()

void if_reinitialize_fallback ( struct interface_info * )

◆ if_reinitialize_receive()

void if_reinitialize_receive ( struct interface_info * )

◆ if_reinitialize_send()

void if_reinitialize_send ( struct interface_info * )

◆ indent()

void indent ( int )

◆ indent_spaces()

void indent_spaces ( FILE * file,
int indent )

Definition at line 1300 of file print.c.

◆ initialize_common_option_spaces()

void initialize_common_option_spaces ( void )

Definition at line 1061 of file tables.c.

◆ initialize_server_option_spaces()

void initialize_server_option_spaces ( void )

Definition at line 454 of file stables.c.

◆ interface_destroy()

isc_result_t interface_destroy ( omapi_object_t * ,
const char * ,
int  )

◆ interface_get_value()

isc_result_t interface_get_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_value_t **  )

◆ interface_initialize()

isc_result_t interface_initialize ( omapi_object_t * ipo,
const char * file,
int line )

Definition at line 133 of file discover.c.

◆ interface_or_dummy()

int interface_or_dummy ( struct interface_info ** pi,
const char * name )

Definition at line 1052 of file clparse.c.

◆ interface_set_value()

isc_result_t interface_set_value ( omapi_object_t * ,
omapi_object_t * ,
omapi_data_string_t * ,
omapi_typed_data_t *  )

◆ interface_setup()

isc_result_t interface_setup ( void )

Definition at line 95 of file discover.c.

◆ interface_signal_handler()

isc_result_t interface_signal_handler ( omapi_object_t * ,
const char * ,
va_list  )

◆ interface_snorf()

void interface_snorf ( struct interface_info * tmp,
int ir )

Definition at line 1574 of file discover.c.

◆ interface_stash()

void interface_stash ( struct interface_info * tptr)

Definition at line 1531 of file discover.c.

◆ interface_stuff_values()

isc_result_t interface_stuff_values ( omapi_object_t * ,
omapi_object_t * ,
omapi_object_t *  )

◆ interface_trace_setup()

void interface_trace_setup ( void )

◆ ip_addr()

struct iaddr ip_addr ( struct iaddr subnet,
struct iaddr mask,
u_int32_t host_address )

Definition at line 63 of file inet.c.

◆ ipv6_in_pool()

isc_boolean_t ipv6_in_pool ( const struct in6_addr * addr,
const struct ipv6_pool * pool )

Definition at line 2273 of file mdb6.c.

◆ ipv6_pond_allocate()

isc_result_t ipv6_pond_allocate ( struct ipv6_pond ** pond,
const char * file,
int line )

Create a new IPv6 pond structure.

Allocate space for a new ipv6_pond structure and return a reference to it, includes setting the reference count to 1.

Parameters
pond= space for returning a referenced pointer to the pond. This must point to a space that has been initialzied to NULL by the caller.
Returns
ISC_R_SUCCESS = The pond was successfully created, pond points to it. DHCP_R_INVALIDARG = One of the arugments was invalid, pond has not been modified ISC_R_NOMEMORY = The system wasn't able to allocate memory, pond has not been modified.

Definition at line 2570 of file mdb6.c.

◆ ipv6_pond_dereference()

isc_result_t ipv6_pond_dereference ( struct ipv6_pond ** pond,
const char * file,
int line )

de-reference an IPv6 pond structure.

This function decrements the reference count in an ipv6_pond structure. If this was the last reference then the memory for the structure is freed.

Parameters
[in]pond= A pointer to the pointer to the pond that should be de-referenced. On success the pointer to the pond is cleared. It must not be NULL and must not point to NULL.
Returns
ISC_R_SUCCESS = The pond was successfully de-referenced, pond now points to NULL DHCP_R_INVALIDARG = One of the arugments was invalid, pond has not been modified.

Definition at line 2653 of file mdb6.c.

◆ ipv6_pond_reference()

isc_result_t ipv6_pond_reference ( struct ipv6_pond ** pond,
struct ipv6_pond * src,
const char * file,
int line )

reference an IPv6 pond structure.

This function genreates a reference to an ipv6_pond structure and increments the reference count on the structure.

Parameters
[out]pond= space for returning a referenced pointer to the pond. This must point to a space that has been initialzied to NULL by the caller.
[in]src= A pointer to the pond to reference. This must not be NULL.
Returns
ISC_R_SUCCESS = The pond was successfully referenced, pond now points to src. DHCP_R_INVALIDARG = One of the arugments was invalid, pond has not been modified.

Definition at line 2613 of file mdb6.c.

◆ ipv6_pool_allocate()

isc_result_t ipv6_pool_allocate ( struct ipv6_pool ** pool,
u_int16_t type,
const struct in6_addr * start_addr,
int bits,
int units,
const char * file,
int line )

Create a new IPv6 lease pool structure.

Allocate space for a new ipv6_pool structure and return a reference to it, includes setting the reference count to 1.

Parameters
pool= space for returning a referenced pointer to the pool. This must point to a space that has been initialzied to NULL by the caller.
[in]type= The type of the pool NA, TA or PD
[in]start_addr= The first address in the range for the pool
[in]bits= The contiguous bits of the pool
Returns
ISC_R_SUCCESS = The pool was successfully created, pool points to it. DHCP_R_INVALIDARG = One of the arugments was invalid, pool has not been modified ISC_R_NOMEMORY = The system wasn't able to allocate memory, pool has not been modified.

Definition at line 640 of file mdb6.c.

◆ ipv6_pool_dereference()

isc_result_t ipv6_pool_dereference ( struct ipv6_pool ** pool,
const char * file,
int line )

de-reference an IPv6 pool structure.

This function decrements the reference count in an ipv6_pool structure. If this was the last reference then the memory for the structure is freed.

Parameters
[in]pool= A pointer to the pointer to the pool that should be de-referenced. On success the pointer to the pool is cleared. It must not be NULL and must not point to NULL.
Returns
ISC_R_SUCCESS = The pool was successfully de-referenced, pool now points to NULL DHCP_R_INVALIDARG = One of the arugments was invalid, pool has not been modified.

Definition at line 777 of file mdb6.c.

◆ ipv6_pool_reference()

isc_result_t ipv6_pool_reference ( struct ipv6_pool ** pool,
struct ipv6_pool * src,
const char * file,
int line )

reference an IPv6 pool structure.

This function genreates a reference to an ipv6_pool structure and increments the reference count on the structure.

Parameters
[out]pool= space for returning a referenced pointer to the pool. This must point to a space that has been initialzied to NULL by the caller.
[in]src= A pointer to the pool to reference. This must not be NULL.
Returns
ISC_R_SUCCESS = The pool was successfully referenced, pool now points to src. DHCP_R_INVALIDARG = One of the arugments was invalid, pool has not been modified.

Definition at line 706 of file mdb6.c.

◆ is_boolean_expression()

int is_boolean_expression ( struct expression * expr)

Definition at line 3031 of file tree.c.

◆ is_cidr_mask_valid()

isc_boolean_t is_cidr_mask_valid ( const struct iaddr * addr,
int bits )

Definition at line 303 of file inet.c.

◆ is_compound_expression()

int is_compound_expression ( struct expression * expr)

Definition at line 3097 of file tree.c.

◆ is_data_expression()

int is_data_expression ( struct expression * expr)

Definition at line 3048 of file tree.c.

◆ is_dns_expression()

int is_dns_expression ( struct expression * )

◆ is_numeric_expression()

int is_numeric_expression ( struct expression * expr)

Definition at line 3078 of file tree.c.

◆ lc_add_sorted_lease()

void lc_add_sorted_lease ( struct leasechain * lc,
struct lease * lp )

◆ lc_delete_all()

void lc_delete_all ( struct leasechain * lc)

◆ lc_get_first_lease()

struct lease * lc_get_first_lease ( struct leasechain * lc)

◆ lc_get_next()

struct lease * lc_get_next ( struct leasechain * lc,
struct lease * lp )

◆ lc_init_growth()

void lc_init_growth ( struct leasechain * lc,
size_t growth )

◆ lc_not_empty()

int lc_not_empty ( struct leasechain * lc)

◆ lc_unlink_lease()

void lc_unlink_lease ( struct leasechain * lc,
struct lease * lp )

◆ lease6_exists()

isc_boolean_t lease6_exists ( const struct ipv6_pool * pool,
const struct in6_addr * addr )

Definition at line 1526 of file mdb6.c.

◆ lease6_usable()

isc_boolean_t lease6_usable ( struct iasubopt * lease)

Check if address is available to a lease.

Determine if the address in the lease is available to that lease. Either the address isn't in use or it is in use but by that lease.

Parameters
[in]lease= lease to check
Returns
ISC_TRUE = The lease is allowed to use that address ISC_FALSE = The lease isn't allowed to use that address

Definition at line 1554 of file mdb6.c.

◆ lease_copy()

int lease_copy ( struct lease ** lp,
struct lease * lease,
const char * file,
int line )

Definition at line 1681 of file mdb.c.

◆ lease_enqueue()

int lease_enqueue ( struct lease * comp)

Definition at line 2679 of file mdb.c.

◆ lease_file_subparse()

isc_result_t lease_file_subparse ( struct parse * cfile)

Definition at line 277 of file confpars.c.

◆ lease_instantiate()

isc_result_t lease_instantiate ( const void * key,
unsigned len,
void * object )

Definition at line 2765 of file mdb.c.

◆ lease_mine_to_reallocate()

int lease_mine_to_reallocate ( struct lease * )

◆ lease_ping_timeout()

void lease_ping_timeout ( void * vlp)

Definition at line 1555 of file dhcpd.c.

◆ lease_pinged()

void lease_pinged ( struct iaddr from,
u_int8_t * packet,
int length )

Definition at line 1506 of file dhcpd.c.

◆ linked_option_get()

int linked_option_get ( struct data_string * ,
struct universe * ,
struct packet * ,
struct lease * ,
struct client_state * ,
struct option_state * ,
struct option_state * ,
struct option_state * ,
struct binding_scope ** ,
unsigned  )

◆ linked_option_space_encapsulate()

int linked_option_space_encapsulate ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * universe )

Definition at line 3913 of file options.c.

◆ linked_option_space_foreach()

void linked_option_space_foreach ( struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * u,
void * stuff,
void(* func )(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *) )

Definition at line 4014 of file options.c.

◆ linked_option_state_dereference()

int linked_option_state_dereference ( struct universe * universe,
struct option_state * state,
const char * file,
int line )

Definition at line 4003 of file options.c.

◆ load_balance_mine()

int load_balance_mine ( struct packet * ,
dhcp_failover_state_t *  )

◆ locate_network()

int locate_network ( struct packet * packet)

Definition at line 5363 of file dhcp.c.

◆ lookup_fqdn6_option()

struct option_cache * lookup_fqdn6_option ( struct universe * universe,
struct option_state * options,
unsigned code )

Definition at line 3534 of file options.c.

◆ lookup_hashed_option()

struct option_cache * lookup_hashed_option ( struct universe * universe,
struct option_state * options,
unsigned code )

Definition at line 2518 of file options.c.

◆ lookup_linked_option()

struct option_cache * lookup_linked_option ( struct universe * universe,
struct option_state * options,
unsigned code )

Definition at line 3978 of file options.c.

◆ lookup_option()

struct option_cache * lookup_option ( struct universe * universe,
struct option_state * options,
unsigned code )

Definition at line 2503 of file options.c.

◆ main()

int main ( int argc,
char ** argv )

Definition at line 241 of file dhclient.c.

◆ make_binding_state_transition()

void make_binding_state_transition ( struct lease * lease)

Definition at line 1503 of file mdb.c.

◆ make_client_config()

void make_client_config ( struct client_state * client,
struct client_config * config )

Definition at line 1115 of file clparse.c.

◆ make_client_options()

void make_client_options ( struct client_state * client,
struct client_lease * lease,
u_int8_t * type,
struct option_cache * sid,
struct iaddr * rip,
struct option ** prl,
struct option_state ** op )

Definition at line 3759 of file dhclient.c.

◆ make_client_state()

void make_client_state ( struct client_state ** state)

Definition at line 1106 of file clparse.c.

◆ make_concat()

int make_concat ( struct expression ** expr,
struct expression * left,
struct expression * right )

Definition at line 268 of file tree.c.

◆ make_const_data()

int make_const_data ( struct expression ** expr,
const unsigned char * data,
unsigned len,
int terminated,
int allocate,
const char * file,
int line )

Definition at line 219 of file tree.c.

◆ make_const_int()

int make_const_int ( struct expression ** expr,
unsigned long val )

Definition at line 254 of file tree.c.

◆ make_const_option_cache()

int make_const_option_cache ( struct option_cache ** oc,
struct buffer ** buffer,
u_int8_t * data,
unsigned len,
struct option * option,
const char * file,
int line )

Definition at line 149 of file tree.c.

◆ make_decline()

void make_decline ( struct client_state * client,
struct client_lease * lease )

Definition at line 4064 of file dhclient.c.

◆ make_discover()

void make_discover ( struct client_state * client,
struct client_lease * lease )

Definition at line 3909 of file dhclient.c.

◆ make_encapsulation()

int make_encapsulation ( struct expression ** expr,
struct data_string * name )

Definition at line 298 of file tree.c.

◆ make_host_lookup()

int make_host_lookup ( struct expression ** expr,
const char * name )

Definition at line 188 of file tree.c.

◆ make_let()

int make_let ( struct executable_statement ** result,
const char * name )

Definition at line 377 of file tree.c.

◆ make_limit()

int make_limit ( struct expression ** new,
struct expression * expr,
int limit )

Definition at line 331 of file tree.c.

◆ make_release()

void make_release ( struct client_state * client,
struct client_lease * lease )

Definition at line 4124 of file dhclient.c.

◆ make_request()

void make_request ( struct client_state * client,
struct client_lease * lease )

Definition at line 3974 of file dhclient.c.

◆ make_substring()

int make_substring ( struct expression ** new,
struct expression * expr,
struct expression * offset,
struct expression * length )

Definition at line 313 of file tree.c.

◆ mark_hosts_unavailable()

void mark_hosts_unavailable ( void )

Definition at line 2471 of file mdb6.c.

◆ mark_interfaces_unavailable()

void mark_interfaces_unavailable ( void )

Definition at line 2526 of file mdb6.c.

◆ mark_lease_unavailble()

isc_result_t mark_lease_unavailble ( struct ipv6_pool * pool,
const struct in6_addr * addr )

◆ mark_phosts_unavailable()

void mark_phosts_unavailable ( void )

Definition at line 2521 of file mdb6.c.

◆ maybe_setup_fallback()

void maybe_setup_fallback ( void )

◆ mockup_lease()

int mockup_lease ( struct lease ** lp,
struct packet * packet,
struct shared_network * share,
struct host_decl * hp )

Definition at line 4969 of file dhcp.c.

◆ nak_lease()

void nak_lease ( struct packet * packet,
struct iaddr * cip,
struct group * network_group )

Constructs and sends a DHCP Nak.

In order to populate options such as dhcp-server-id and dhcp-client-identifier, the function creates a temporary option cache and evaluates options based on the packet's shared-network or the network_group in its absence, as well as the packet->clasess (if any).

Parameters
packetinbound packet received from the client
cipaddress requested by the client
network_groupoptional scope for use in setting up options

Definition at line 1810 of file dhcp.c.

◆ new_address_range()

void new_address_range ( struct parse * cfile,
struct iaddr low,
struct iaddr high,
struct subnet * subnet,
struct pool * pool,
struct lease ** lpchain )

Definition at line 782 of file mdb.c.

◆ new_client_lease()

struct client_lease * new_client_lease ( const char * ,
int  )

◆ new_dhcp_packet()

struct dhcp_packet * new_dhcp_packet ( const char * ,
int  )

◆ new_domain_search_list()

struct domain_search_list * new_domain_search_list ( const char * ,
int  )

◆ new_lease_file()

int new_lease_file ( int test_mode)

Definition at line 1133 of file db.c.

◆ new_lease_state()

struct lease_state * new_lease_state ( const char * ,
int  )

◆ new_leases()

struct lease * new_leases ( unsigned ,
const char * ,
int  )

◆ new_name_server()

struct name_server * new_name_server ( const char * ,
int  )

◆ new_option()

struct option * new_option ( const char * ,
const char * ,
int  )

◆ new_pair()

pair new_pair ( const char * ,
int  )

◆ new_parse()

isc_result_t new_parse ( struct parse ** cfile,
int file,
char * inbuf,
unsigned buflen,
const char * name,
int eolp )

Definition at line 41 of file conflex.c.

◆ new_permit()

struct permit * new_permit ( const char * ,
int  )

◆ new_protocol()

struct protocol * new_protocol ( const char * ,
int  )

◆ new_shared_network_interface()

void new_shared_network_interface ( struct parse * cfile,
struct shared_network * share,
const char * name )

Definition at line 1066 of file mdb.c.

◆ new_universe()

struct universe * new_universe ( const char * ,
int  )

◆ next_hashed_option()

struct option_cache * next_hashed_option ( struct universe * ,
struct option_state * ,
struct option_cache *  )

◆ 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.

◆ normal_binding_state_transition_check()

binding_state_t normal_binding_state_transition_check ( struct lease * ,
dhcp_failover_state_t * ,
binding_state_t ,
u_int32_t  )

◆ nwip_option_space_encapsulate()

int nwip_option_space_encapsulate ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * universe )

Definition at line 3292 of file options.c.

◆ OMAPI_OBJECT_ALLOC_DECL() [1/4]

dhcp_type_failover_listener OMAPI_OBJECT_ALLOC_DECL ( dhcp_failover_link ,
dhcp_failover_link_t ,
dhcp_type_failover_link  ) const

◆ OMAPI_OBJECT_ALLOC_DECL() [2/4]

OMAPI_OBJECT_ALLOC_DECL ( dhcp_failover_state ,
dhcp_failover_state_t ,
dhcp_type_failover_state  )

◆ OMAPI_OBJECT_ALLOC_DECL() [3/4]

OMAPI_OBJECT_ALLOC_DECL ( interface ,
struct interface_info ,
dhcp_type_interface  )

◆ OMAPI_OBJECT_ALLOC_DECL() [4/4]

OMAPI_OBJECT_ALLOC_DECL ( shared_network ,
struct shared_network ,
dhcp_type_shared_network  )

◆ op_context()

enum expression_context op_context ( enum expr_op)

Definition at line 3217 of file tree.c.

◆ op_precedence()

int op_precedence ( enum expr_op,
enum expr_op )

Definition at line 3200 of file tree.c.

◆ option_cache()

int option_cache ( struct option_cache ** oc,
struct data_string * dp,
struct expression * expr,
struct option * option,
const char * file,
int line )

Definition at line 363 of file tree.c.

◆ option_cache_allocate()

int option_cache_allocate ( struct option_cache ** cptr,
const char * file,
int line )

Definition at line 630 of file alloc.c.

◆ option_cache_dereference()

int option_cache_dereference ( struct option_cache ** ptr,
const char * file,
int line )

Definition at line 2953 of file options.c.

◆ option_cache_reference()

int option_cache_reference ( struct option_cache ** ptr,
struct option_cache * src,
const char * file,
int line )

Definition at line 651 of file alloc.c.

◆ option_chain_head_allocate()

dhcp_type_control int option_chain_head_allocate ( struct option_chain_head ** ptr,
const char * file,
int line )

Definition at line 35 of file alloc.c.

◆ option_chain_head_dereference()

int option_chain_head_dereference ( struct option_chain_head ** ptr,
const char * file,
int line )

Definition at line 95 of file alloc.c.

◆ option_chain_head_reference()

int option_chain_head_reference ( struct option_chain_head ** ptr,
struct option_chain_head * bp,
const char * file,
int line )

Definition at line 67 of file alloc.c.

◆ option_dereference()

int option_dereference ( struct option ** dest,
const char * file,
int line )

Definition at line 1014 of file tables.c.

◆ option_reference()

int option_reference ( struct option ** dest,
struct option * src,
const char * file,
int line )

Definition at line 992 of file tables.c.

◆ option_space_encapsulate()

int option_space_encapsulate ( struct data_string * result,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct data_string * name )

Definition at line 3161 of file options.c.

◆ option_space_foreach()

void option_space_foreach ( struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * u,
void * stuff,
void(* func )(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *) )

Definition at line 3789 of file options.c.

◆ option_state_allocate()

int option_state_allocate ( struct option_state ** ptr,
const char * file,
int line )

Definition at line 846 of file alloc.c.

◆ option_state_dereference()

int option_state_dereference ( struct option_state ** ptr,
const char * file,
int line )

Definition at line 911 of file alloc.c.

◆ option_state_reference()

int option_state_reference ( struct option_state ** ptr,
struct option_state * bp,
const char * file,
int line )

Definition at line 883 of file alloc.c.

◆ packet6_len_okay()

int packet6_len_okay ( const char * packet,
int len )

Definition at line 4135 of file options.c.

◆ packet_allocate()

int packet_allocate ( struct packet ** ptr,
const char * file,
int line )

Definition at line 1015 of file alloc.c.

◆ packet_dereference()

int packet_dereference ( struct packet ** ptr,
const char * file,
int line )

Definition at line 1081 of file alloc.c.

◆ packet_reference()

int packet_reference ( struct packet ** ptr,
struct packet * bp,
const char * file,
int line )

Definition at line 1053 of file alloc.c.

◆ packet_to_lease()

void struct client_lease * packet_to_lease ( struct packet * packet,
struct client_state * client )

Definition at line 2725 of file dhclient.c.

◆ parse_address_range()

void parse_address_range ( struct parse * cfile,
struct group * group,
int type,
struct pool * inpool,
struct lease ** lpchain )

Definition at line 3787 of file confpars.c.

◆ parse_address_range6()

void parse_address_range6 ( struct parse * cfile,
struct group * group,
struct ipv6_pond *  )

◆ parse_agent_information_option()

int parse_agent_information_option ( struct packet * packet,
int len,
u_int8_t * data )

Definition at line 5518 of file dhclient.c.

◆ parse_allow_deny()

int parse_allow_deny ( struct option_cache ** oc,
struct parse * cfile,
int flag )

Definition at line 2339 of file clparse.c.

◆ parse_auth_key()

int parse_auth_key ( struct data_string * ,
struct parse *  )

◆ parse_base64()

int parse_base64 ( struct data_string * data,
struct parse * cfile )

Definition at line 1899 of file parse.c.

◆ parse_boolean()

int parse_boolean ( struct parse * cfile)

Definition at line 3498 of file parse.c.

◆ parse_boolean_expression()

int parse_boolean_expression ( struct expression ** expr,
struct parse * cfile,
int * lose )

Definition at line 3475 of file parse.c.

◆ parse_byte_order_uint32()

uint32_t parse_byte_order_uint32 ( const void * source)

◆ parse_case_statement()

int parse_case_statement ( struct executable_statement ** result,
struct parse * cfile,
int * lose,
enum expression_context )

Definition at line 3292 of file parse.c.

◆ parse_class_declaration()

int parse_class_declaration ( struct class ** cp,
struct parse * cfile,
struct group * group,
int type )

Definition at line 2226 of file confpars.c.

◆ parse_client_lease_declaration()

void parse_client_lease_declaration ( struct parse * cfile,
struct client_lease * lease,
struct interface_info ** ipp,
struct client_state ** clientp )

Definition at line 1258 of file clparse.c.

◆ parse_client_lease_statement()

void parse_client_lease_statement ( struct parse * cfile,
int is_static )

Definition at line 1140 of file clparse.c.

◆ parse_client_statement()

void parse_client_statement ( struct parse * cfile,
struct interface_info * ip,
struct client_config * config )

Definition at line 438 of file clparse.c.

◆ parse_cshl()

int parse_cshl ( struct data_string * data,
struct parse * cfile )

Definition at line 2040 of file parse.c.

◆ parse_data_expression()

int parse_data_expression ( struct expression ** expr,
struct parse * cfile,
int * lose )

Definition at line 3542 of file parse.c.

◆ parse_date()

TIME parse_date ( struct parse * cfile)

Definition at line 1188 of file parse.c.

◆ parse_date_core()

TIME parse_date_core ( struct parse * cfile)

Definition at line 978 of file parse.c.

◆ parse_destination_descriptor()

int parse_destination_descriptor ( struct parse * cfile,
struct iaddr * addr )

Definition at line 354 of file parse.c.

◆ parse_dns_expression()

int parse_dns_expression ( struct expression ** ,
struct parse * ,
int *  )

◆ parse_domain_list()

int struct expression * parse_domain_list ( struct parse * cfile,
int compress )

Definition at line 5704 of file parse.c.

◆ parse_domain_name()

struct expression * parse_domain_name ( struct parse * cfile)

Definition at line 5785 of file parse.c.

◆ parse_encapsulated_suboptions()

int parse_encapsulated_suboptions ( struct option_state * options,
struct option * eopt,
const unsigned char * buffer,
unsigned len,
struct universe * eu,
const char * uname )

Definition at line 337 of file options.c.

◆ parse_executable_statement()

int parse_executable_statement ( struct executable_statement ** result,
struct parse * cfile,
int * lose,
enum expression_context )

Definition at line 2133 of file parse.c.

◆ parse_executable_statements()

int parse_executable_statements ( struct executable_statement ** statements,
struct parse * cfile,
int * lose,
enum expression_context )

Definition at line 2117 of file parse.c.

◆ parse_expression()

int parse_expression ( struct expression ** expr,
struct parse * cfile,
int * lose,
enum expression_context,
struct expression ** plhs,
enum expr_op )

Definition at line 4501 of file parse.c.

◆ parse_failover_peer()

void parse_failover_peer ( struct parse * ,
struct group * ,
int  )

◆ parse_failover_state()

void parse_failover_state ( struct parse * ,
enum failover_state * ,
TIME *  )

◆ parse_failover_state_declaration()

void parse_failover_state_declaration ( struct parse * ,
dhcp_failover_state_t *  )

◆ parse_fixed_addr_param()

int parse_fixed_addr_param ( struct option_cache ** oc,
struct parse * cfile,
enum dhcp_token )

Definition at line 3070 of file confpars.c.

◆ parse_fixed_prefix6()

void parse_fixed_prefix6 ( struct parse * cfile,
struct host_decl * host_decl )

◆ parse_group_declaration()

void parse_group_declaration ( struct parse * cfile,
struct group * group )

Definition at line 2977 of file confpars.c.

◆ parse_hardware_param()

void parse_hardware_param ( struct parse * cfile,
struct hardware * hardware )

Definition at line 615 of file parse.c.

◆ parse_host_declaration()

void parse_host_declaration ( struct parse * cfile,
struct group * group )

Definition at line 1959 of file confpars.c.

◆ parse_host_name()

char * parse_host_name ( struct parse * cfile)

Definition at line 196 of file parse.c.

◆ parse_ia_na_declaration()

void parse_ia_na_declaration ( struct parse * cfile)

Definition at line 4752 of file confpars.c.

◆ parse_ia_pd_declaration()

void parse_ia_pd_declaration ( struct parse * cfile)

Definition at line 5637 of file confpars.c.

◆ parse_ia_ta_declaration()

void parse_ia_ta_declaration ( struct parse * cfile)

Definition at line 5200 of file confpars.c.

◆ parse_if_statement()

int parse_if_statement ( struct executable_statement ** result,
struct parse * cfile,
int * lose )

Definition at line 3339 of file parse.c.

◆ parse_interface_declaration()

void parse_interface_declaration ( struct parse * cfile,
struct client_config * outer_config,
char * name )

Definition at line 989 of file clparse.c.

◆ parse_ip6_addr()

int parse_ip6_addr ( struct parse * cfile,
struct iaddr * addr )

Definition at line 405 of file parse.c.

◆ parse_ip6_addr_expr()

int parse_ip6_addr_expr ( struct expression ** expr,
struct parse * cfile )

Definition at line 465 of file parse.c.

◆ parse_ip6_prefix()

int parse_ip6_prefix ( struct parse * cfile,
struct iaddr * addr,
u_int8_t * plen )

Definition at line 479 of file parse.c.

◆ parse_ip_addr()

int parse_ip_addr ( struct parse * cfile,
struct iaddr * addr )

Definition at line 336 of file parse.c.

◆ parse_ip_addr_or_hostname()

int parse_ip_addr_or_hostname ( struct expression ** expr,
struct parse * cfile,
int uniform )

Definition at line 268 of file parse.c.

◆ parse_ip_addr_with_subnet()

int parse_ip_addr_with_subnet ( struct parse * cfile,
struct iaddrmatch * match )

Definition at line 522 of file parse.c.

◆ parse_key()

int parse_key ( struct parse * cfile)

Definition at line 2996 of file parse.c.

◆ parse_lbrace()

int parse_lbrace ( struct parse * cfile)

Definition at line 1269 of file confparse.c.

◆ parse_lease_declaration()

int parse_lease_declaration ( struct lease ** lp,
struct parse * cfile )

Definition at line 3141 of file confpars.c.

◆ parse_lease_time()

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

Definition at line 690 of file parse.c.

◆ parse_non_binary()

int parse_non_binary ( struct expression ** expr,
struct parse * cfile,
int * lose,
enum expression_context )

Definition at line 3592 of file parse.c.

◆ parse_numeric_aggregate()

unsigned char * 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_numeric_expression()

int parse_numeric_expression ( struct expression ** expr,
struct parse * cfile,
int * lose )

Definition at line 3569 of file parse.c.

◆ parse_on_statement()

int parse_on_statement ( struct executable_statement ** result,
struct parse * cfile,
int * lose )

Definition at line 3144 of file parse.c.

◆ parse_option_buffer()

int parse_option_buffer ( struct option_state * options,
const unsigned char * buffer,
unsigned length,
struct universe * universe )

Definition at line 119 of file options.c.

◆ parse_option_code_definition()

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

Definition at line 1572 of file parse.c.

◆ parse_option_data()

int parse_option_data ( struct expression ** expr,
struct parse * cfile,
int lookups,
struct option * option )

Definition at line 4812 of file parse.c.

◆ parse_option_decl()

int parse_option_decl ( struct option_cache ** oc,
struct parse * cfile )

Definition at line 5290 of file parse.c.

◆ parse_option_list()

int parse_option_list ( struct parse * cfile,
struct option *** list )

Definition at line 915 of file clparse.c.

◆ parse_option_name()

isc_result_t parse_option_name ( struct parse * cfile,
int allocate,
int * known,
struct option ** opt )

Definition at line 1208 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_statement()

int parse_option_statement ( struct executable_statement ** result,
struct parse * cfile,
int lookups,
struct option * option,
enum statement_op )

Definition at line 4919 of file parse.c.

◆ parse_option_token()

int parse_option_token ( struct expression ** rv,
struct parse * cfile,
const char ** fmt,
struct expression * expr,
int uniform,
int lookups )

Definition at line 4978 of file parse.c.

◆ parse_options()

int parse_options ( struct packet * packet)

Definition at line 49 of file options.c.

◆ parse_pool6_statement()

void parse_pool6_statement ( struct parse * ,
struct group * ,
int  )

◆ parse_pool_statement()

void parse_pool_statement ( struct parse * cfile,
struct group * group,
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]group= the group structure for this pool
[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 1732 of file confpars.c.

◆ parse_prefix6()

void parse_prefix6 ( struct parse * cfile,
struct group * group,
struct ipv6_pond *  )

◆ parse_reject_statement()

void parse_reject_statement ( struct parse * cfile,
struct client_config * config )

Definition at line 2275 of file clparse.c.

◆ parse_semi()

int parse_semi ( struct parse * cfile)

Definition at line 139 of file parse.c.

◆ parse_server_duid()

void parse_server_duid ( struct parse * cfile)

◆ 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,
struct group * group )

Definition at line 2606 of file confpars.c.

◆ parse_statement()

int parse_statement ( struct parse * cfile,
struct group * group,
int type,
struct host_decl * host_decl,
int declaration )

Definition at line 364 of file confpars.c.

◆ parse_string()

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

Definition at line 156 of file parse.c.

◆ parse_string_list()

void parse_string_list ( struct parse * cfile,
struct string_list ** lp,
int multiple )

Definition at line 2225 of file clparse.c.

◆ parse_subnet6_declaration()

void parse_subnet6_declaration ( struct parse * cfile,
struct shared_network * share )

Definition at line 2852 of file confpars.c.

◆ parse_subnet_declaration()

void parse_subnet_declaration ( struct parse * cfile,
struct shared_network * share )

Definition at line 2763 of file confpars.c.

◆ parse_switch_statement()

int parse_switch_statement ( struct executable_statement ** result,
struct parse * cfile,
int * lose )

Definition at line 3224 of file parse.c.

◆ parse_trace_setup()

void parse_trace_setup ( void )

◆ parse_vendor_option()

void parse_vendor_option ( struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * out_options,
struct binding_scope ** scope )

Parse a vendor option (option 43)

After the server has parsed most of the options and presented the result to the user the user can set the proper vendor option space using vendor-option-space in the config file and then cause this routine to be called via parse-vendor-option in the config file. This routine will then try and find the proper universe for the vendor-option-space and parse the vendor option string based on that universe.

If the information isn't available (no vendor space, no universe for the vendor space, no vendor option in the options) or the decode fails we simply ignore the option and continue processing.

Parameters
packet- structure to hold information about the packet being processed
lease- lease structure
client_state
in_options- The incoming options, we expect to find the vendor-option (option 43, containing the string to parse) there. We shall attach decoded options there.
out_options- The options we have added as we process the packet. We expect to find the vendor-option-space there and use that to find the name of the vendor universe to use
scope
Returns
- void as there isn't much we can do about failures.

Definition at line 4618 of file options.c.

◆ parse_warn()

int parse_warn ( struct parse * ,
const char * ,
... )

◆ parse_X()

int parse_X ( struct parse * cfile,
u_int8_t * buf,
unsigned max )

Definition at line 5593 of file parse.c.

◆ parse_zone()

int parse_zone ( struct dns_zone * zone,
struct parse * cfile )

Definition at line 2816 of file parse.c.

◆ pdestdesc()

const char * pdestdesc ( struct iaddr addr)

Definition at line 557 of file inet.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.

◆ peer_wants_lease()

int peer_wants_lease ( struct lease * )

◆ permit_list_match()

int permit_list_match ( struct permit * lhs,
struct permit * rhs )

Definition at line 1688 of file confpars.c.

◆ permitted()

int permitted ( struct packet * packet,
struct permit * permit_list )

Definition at line 5178 of file dhcp.c.

◆ piaddr()

const char * piaddr ( struct iaddr addr)

Definition at line 579 of file inet.c.

◆ piaddrcidr()

char * piaddrcidr ( const struct iaddr * addr,
unsigned int bits )

Definition at line 637 of file inet.c.

◆ piaddrmask()

char * piaddrmask ( struct iaddr * addr,
struct iaddr * mask )

Definition at line 606 of file inet.c.

◆ pin6_addr()

const char * pin6_addr ( const struct in6_addr * )

◆ pool_timer()

void pool_timer ( void * vpool)

Definition at line 1914 of file mdb.c.

◆ postconf_initialization()

void postconf_initialization ( int quiet)

Definition at line 1083 of file dhcpd.c.

◆ postdb_startup()

void postdb_startup ( void )

Definition at line 1488 of file dhcpd.c.

◆ prefix6_exists()

isc_boolean_t prefix6_exists ( const struct ipv6_pool * pool,
const struct in6_addr * pref,
u_int8_t plen )

Definition at line 1983 of file mdb6.c.

◆ pretty_escape()

int pretty_escape ( char ** dst,
char * dend,
const unsigned char ** src,
const unsigned char * send )

Definition at line 4287 of file options.c.

◆ pretty_print_option()

const char * pretty_print_option ( struct option * option,
const unsigned char * data,
unsigned len,
int emit_commas,
int emit_quotes )

Definition at line 1793 of file options.c.

◆ print_base64()

char * print_base64 ( const unsigned char * buf,
unsigned len,
const char * file,
int line )

Definition at line 121 of file print.c.

◆ print_dec_1()

char * print_dec_1 ( unsigned long val)

Definition at line 524 of file print.c.

◆ print_dec_2()

char * print_dec_2 ( unsigned long val)

Definition at line 532 of file print.c.

◆ print_dns_status()

void print_dns_status ( int ,
struct dhcp_ddns_cb * ,
isc_result_t  )

◆ print_dotted_quads()

char * print_dotted_quads ( unsigned len,
const u_int8_t * data )

Definition at line 493 of file print.c.

◆ print_expression()

void print_expression ( const char * ,
struct expression *  )

◆ print_hex()

char * print_hex ( unsigned len,
const u_int8_t * data,
unsigned limit,
unsigned buf_num )

Definition at line 456 of file print.c.

◆ print_hex_only()

void print_hex_only ( unsigned len,
const u_int8_t * data,
unsigned limit,
char * buf )

Definition at line 380 of file print.c.

◆ print_hex_or_string()

void print_hex_or_string ( unsigned len,
const u_int8_t * data,
unsigned limit,
char * buf )

Definition at line 419 of file print.c.

◆ print_hw_addr()

char * print_hw_addr ( const int ,
const int ,
const unsigned char *  )

◆ print_lease()

void print_lease ( struct lease * lease)

Definition at line 194 of file print.c.

◆ print_time()

const char * print_time ( TIME t)

Definition at line 1312 of file print.c.

◆ process_outstanding_timeouts()

struct timeval * process_outstanding_timeouts ( struct timeval * tvp)

Definition at line 46 of file dispatch.c.

◆ quotify_buf()

char * quotify_buf ( const unsigned char * s,
unsigned len,
const char enclose_char,
const char * file,
int line )

Definition at line 71 of file print.c.

◆ quotify_string()

char * quotify_string ( const char * s,
const char * file,
int line )

Definition at line 33 of file print.c.

◆ range2cidr()

isc_result_t range2cidr ( struct iaddrcidrnetlist ** result,
const struct iaddr * lo,
const struct iaddr * hi )

Definition at line 360 of file inet.c.

◆ read_client_conf()

isc_result_t read_client_conf ( void )

Definition at line 58 of file clparse.c.

◆ read_client_conf_file()

int read_client_conf_file ( const char * name,
struct interface_info * ip,
struct client_config * client )

Definition at line 294 of file clparse.c.

◆ read_client_duid()

void read_client_duid ( void )

Definition at line 333 of file clparse.c.

◆ read_client_leases()

void read_client_leases ( void )

Definition at line 369 of file clparse.c.

◆ read_conf_file()

isc_result_t read_conf_file ( const char * filename,
struct group * group,
int group_type,
int leasep )

Definition at line 79 of file confpars.c.

◆ read_resolv_conf()

void read_resolv_conf ( TIME parse_time)

Definition at line 35 of file resolv.c.

◆ readconf()

isc_result_t readconf ( void )

Definition at line 64 of file confpars.c.

◆ receive_packet()

ssize_t receive_packet ( struct interface_info * ,
unsigned char * ,
size_t ,
struct sockaddr_in * ,
struct hardware *  )

◆ receive_packet6()

ssize_t receive_packet6 ( struct interface_info * interface,
unsigned char * buf,
size_t len,
struct sockaddr_in6 * from,
struct in6_addr * to_addr,
unsigned int * if_index )

◆ register_eventhandler()

void register_eventhandler ( struct eventqueue ** ,
void(* handler )(void *) )

◆ reinitialize_interfaces()

void reinitialize_interfaces ( void )

Definition at line 1078 of file discover.c.

◆ release_lease()

void release_lease ( struct lease * lease,
struct packet * packet )

Definition at line 1755 of file mdb.c.

◆ release_lease6()

isc_result_t release_lease6 ( struct ipv6_pool * pool,
struct iasubopt * lease )

Definition at line 1801 of file mdb6.c.

◆ release_leases()

isc_result_t release_leases ( struct ia_xx * ia)

Definition at line 2360 of file mdb6.c.

◆ relinquish_lease_hunks()

void relinquish_lease_hunks ( void )

◆ relinquish_timeouts()

void relinquish_timeouts ( void )

◆ remove_all_if_routes()

void remove_all_if_routes ( struct interface_info * )

◆ remove_if_route()

void remove_if_route ( struct interface_info * ,
struct in_addr  )

◆ remove_routes()

void remove_routes ( struct in_addr )

◆ renew_lease6()

isc_result_t renew_lease6 ( struct ipv6_pool * pool,
struct iasubopt * lease )

Renew a lease in the pool.

The hard_lifetime_end_time of the lease should be set to the current expiration time. The soft_lifetime_end_time of the lease should be set to the desired expiration time.

This routine will compare the two and call the correct heap routine to move the lease. If the lease is active and the new expiration time is greater (the normal case) then we call isc_heap_decreased() as a larger time is a lower priority. If the new expiration time is less then we call isc_heap_increased().

If the lease is abandoned then it will be on the active list and we will always call isc_heap_increased() as the previous expiration would have been all 1s (as close as we can get to infinite).

If the lease is moving to active we call that routine which will move it from the inactive list to the active list.

Parameters
pool= a pool the lease belongs to
lease= the lease to be renewed
Returns
result of the renew operation (ISC_R_SUCCESS if successful, ISC_R_NOMEMORY when run out of memory)

Definition at line 1625 of file mdb6.c.

◆ renew_leases()

isc_result_t renew_leases ( struct ia_xx * ia)

Definition at line 2352 of file mdb6.c.

◆ report_jumbo_ranges()

void report_jumbo_ranges ( )

Definition at line 2739 of file mdb6.c.

◆ repudiate_zone()

void repudiate_zone ( struct dns_zone ** )

◆ restore_parse_state()

isc_result_t restore_parse_state ( struct parse * cfile)

Definition at line 159 of file conflex.c.

◆ rewrite_client_leases()

void rewrite_client_leases ( void )

Definition at line 4195 of file dhclient.c.

◆ save_fqdn6_option()

void save_fqdn6_option ( struct universe * universe,
struct option_state * options,
struct option_cache * oc,
isc_boolean_t appendp )

Definition at line 3545 of file options.c.

◆ save_hashed_option()

void save_hashed_option ( struct universe * universe,
struct option_state * options,
struct option_cache * oc,
isc_boolean_t appendp )

Definition at line 2839 of file options.c.

◆ save_linked_option()

void save_linked_option ( struct universe * universe,
struct option_state * options,
struct option_cache * oc,
isc_boolean_t appendp )

Definition at line 3869 of file options.c.

◆ save_option()

void save_option ( struct universe * universe,
struct option_state * options,
struct option_cache * oc )

Definition at line 2818 of file options.c.

◆ save_option_buffer()

int save_option_buffer ( struct universe * universe,
struct option_state * options,
struct buffer * bp,
unsigned char * buffer,
unsigned length,
unsigned code,
int terminatep )

Definition at line 2545 of file options.c.

◆ save_parse_state()

isc_result_t save_parse_state ( struct parse * cfile)

Definition at line 128 of file conflex.c.

◆ schedule_all_ipv6_lease_timeouts()

void schedule_all_ipv6_lease_timeouts ( )

Definition at line 2208 of file mdb6.c.

◆ schedule_lease_timeout()

void schedule_lease_timeout ( struct ipv6_pool * pool)

Definition at line 2165 of file mdb6.c.

◆ script_go()

int script_go ( struct client_state * client)

Calls external script.

External script is specified either using -sf command line or script parameter in the configuration file.

Parameters
clientspecifies client information (environment variables, and other parameters will be extracted and passed to the script.
Returns
If positive, it contains exit code of the process running script. If negative, returns the signal number that cause the script process to terminate.

Definition at line 5058 of file dhclient.c.

◆ script_init()

void script_init ( struct client_state * client,
const char * reason,
struct string_list * medium )

Initializes basic variables for a script.

This function is called as an initial preparation for calling a script. It sets up a number of common env. variables that will be passed to the script. For actual script calling, see script_go .

Parameters
clientvariables will be stored here (if null, the whole function is no-op)
reasonspecified the reason for calling a script (must be non-null)
mediumif specified, defines medium type (may be null)

Definition at line 4811 of file dhclient.c.

◆ script_write_params()

void script_write_params ( struct client_state * client,
const char * prefix,
struct client_lease * lease )

Adds parameters to environment variables for a script.

This function add details of specified lease to a list of env. variables to be passed to a script. The lease details will be prepended with specified prefix (e.g. "old_") and added to the list stored in client. Following variables may be set:

  • ip_address
  • next_server
  • network_number
  • broadcast_address
  • filename
  • server_name
  • expiry
Parameters
clientenv. variables will be stored here
prefixtextual prefix to be added to each variable (e.g. "old_")
leaselease details will be extracted from here

Definition at line 4905 of file dhclient.c.

◆ script_write_requested()

void script_write_requested ( struct client_state * client)

Write out the environent variable the client requested. Write out the environment variables for the objects that the client requested. If the object was requested the variable will be: requested_<option_name>=1 If it wasn't requested there won't be a variable.

Parameters
clientclient structure

Definition at line 5028 of file dhclient.c.

◆ send_decline()

void send_decline ( void * cpp)

Definition at line 3477 of file dhclient.c.

◆ send_discover()

void send_discover ( void * cpp)

Definition at line 2927 of file dhclient.c.

◆ send_fallback()

ssize_t send_fallback ( struct interface_info * ,
struct packet * ,
struct dhcp_packet * ,
size_t ,
struct in_addr ,
struct sockaddr_in * ,
struct hardware *  )

◆ send_fallback6()

ssize_t send_fallback6 ( struct interface_info * ,
struct packet * ,
struct dhcp_packet * ,
size_t ,
struct in6_addr * ,
struct sockaddr_in6 * ,
struct hardware *  )

◆ send_packet()

ssize_t send_packet ( struct interface_info * ,
struct packet * ,
struct dhcp_packet * ,
size_t ,
struct in_addr ,
struct sockaddr_in * ,
struct hardware *  )

◆ send_packet6()

ssize_t send_packet6 ( struct interface_info * ,
const unsigned char * ,
size_t ,
struct sockaddr_in6 *  )

◆ send_release()

void send_release ( void * cpp)

Definition at line 3519 of file dhclient.c.

◆ send_request()

void send_request ( void * cpp)

Definition at line 3265 of file dhclient.c.

◆ server_duid_isset()

isc_boolean_t server_duid_isset ( void )

◆ set_broadcast_addr()

void set_broadcast_addr ( struct interface_info * ,
struct in_addr  )

◆ set_ip_address()

void set_ip_address ( struct interface_info * ,
struct in_addr  )

◆ set_multicast_hop_limit()

void set_multicast_hop_limit ( struct interface_info * info,
int hop_limit )

◆ set_netmask()

void set_netmask ( struct interface_info * ,
struct in_addr  )

◆ set_option()

void set_option ( struct universe * universe,
struct option_state * options,
struct option_cache * option,
enum statement_op )

Definition at line 2403 of file options.c.

◆ set_server_duid()

void set_server_duid ( struct data_string * new_duid)

◆ set_server_duid_from_option()

isc_result_t set_server_duid_from_option ( void )

◆ set_server_duid_type()

void set_server_duid_type ( int type)

◆ set_time()

void set_time ( TIME t)

Definition at line 36 of file dispatch.c.

◆ setup_fallback()

int setup_fallback ( struct interface_info ** fp,
const char * file,
int line )

Definition at line 1059 of file discover.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.

◆ start_confirm6()

void start_confirm6 ( struct client_state * client)

◆ start_info_request6()

void start_info_request6 ( struct client_state * client)

◆ start_init6()

void start_init6 ( struct client_state * client)

◆ start_release6()

void start_release6 ( struct client_state * client)

◆ start_selecting6()

void start_selecting6 ( struct client_state * client)

◆ start_v6only()

void start_v6only ( struct client_state * client,
uint32_t v6only_wait )

Definition at line 1769 of file dhclient.c.

◆ state_bound()

void state_bound ( void * cpp)

Definition at line 2167 of file dhclient.c.

◆ state_init()

void state_init ( void * cpp)

Definition at line 1678 of file dhclient.c.

◆ state_panic()

void state_panic ( void * cpp)

Definition at line 3150 of file dhclient.c.

◆ state_reboot()

void state_reboot ( void * cpp)

Definition at line 1625 of file dhclient.c.

◆ state_requesting()

void state_requesting ( void * )

◆ state_selecting()

void state_selecting ( void * cpp)

Definition at line 1803 of file dhclient.c.

◆ state_stop()

void state_stop ( void * cpp)

Definition at line 2209 of file dhclient.c.

◆ static_lease_dereference()

void static_lease_dereference ( struct lease * ,
const char * ,
int  )

◆ store_option()

int store_option ( struct data_string * result,
struct universe * universe,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct option_cache * oc )

Definition at line 3091 of file options.c.

◆ store_options()

int store_options ( int * ocount,
unsigned char * buffer,
unsigned buflen,
unsigned index,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
unsigned * priority_list,
int priority_len,
unsigned first_cutoff,
int second_cutoff,
int terminate,
const char * vuname )

Definition at line 1236 of file options.c.

◆ store_options6()

int store_options6 ( char * buf,
int buflen,
struct option_state * opt_state,
struct packet * packet,
const int * required_opts,
struct data_string * oro )

Definition at line 1048 of file options.c.

◆ subnet_inner_than()

int subnet_inner_than ( const struct subnet * subnet,
const struct subnet * scan,
int warnp )

Definition at line 976 of file mdb.c.

◆ subnet_number()

struct iaddr subnet_number ( struct iaddr addr,
struct iaddr mask )

Definition at line 34 of file inet.c.

◆ suboption_foreach()

void suboption_foreach ( struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * u,
void * stuff,
void(* func )(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *),
struct option_cache * oc,
const char * vsname )

Definition at line 3808 of file options.c.

◆ supersede_group()

isc_result_t supersede_group ( struct group_object * group,
int writep )

Definition at line 74 of file memory.c.

◆ supersede_lease()

int supersede_lease ( struct lease * comp,
struct lease * lease,
int commit,
int propogate,
int pimmediate,
int from_pool )

Definition at line 1155 of file mdb.c.

◆ supports_multiple_interfaces()

int supports_multiple_interfaces ( struct interface_info * )

◆ token_indent_data_string()

int token_indent_data_string ( FILE * file,
int col,
int indent,
const char * prefix,
const char * suffix,
struct data_string * data )

Definition at line 1219 of file print.c.

◆ token_print_indent()

int token_print_indent ( FILE * file,
int col,
int indent,
const char * prefix,
const char * suffix,
const char * buf )

Definition at line 1262 of file print.c.

◆ token_print_indent_concat()

int token_print_indent_concat ( FILE * file,
int col,
int indent,
const char * prefix,
const char * suffix,
... )

Definition at line 1181 of file print.c.

◆ trace_conf_input()

void trace_conf_input ( trace_type_t * ,
unsigned ,
char *  )

◆ trace_conf_stop()

void trace_conf_stop ( trace_type_t * ttype)

◆ trace_ddns_init()

void trace_ddns_init ( void )

◆ trigger_event()

void trigger_event ( struct eventqueue ** queue)

Definition at line 91 of file dispatch.c.

◆ try_hw_addr()

void try_hw_addr ( struct interface_info * info)

◆ uid_hash_add()

void uid_hash_add ( struct lease * lease)

Definition at line 2134 of file mdb.c.

◆ uid_hash_delete()

void uid_hash_delete ( struct lease * lease)

Definition at line 2201 of file mdb.c.

◆ unbill_class()

void unbill_class ( struct lease * lease)

Definition at line 1562 of file dhclient.c.

◆ unconfigure6()

void unconfigure6 ( struct client_state * client,
const char * reason )

◆ unlink_class()

isc_result_t unlink_class ( struct class ** class)

Definition at line 210 of file class.c.

◆ unregister_eventhandler()

void unregister_eventhandler ( struct eventqueue ** queue,
void(* handler )(void *) )

Definition at line 70 of file dispatch.c.

◆ unset()

int unset ( struct binding_scope * scope,
const char * name )

Definition at line 4134 of file tree.c.

◆ update_partner()

void update_partner ( struct lease * )

◆ use_host_decl_name()

void use_host_decl_name ( struct packet * packet,
struct lease * lease,
struct option_state * options )

Adds hostname option when use-host-decl-names is enabled.

Constructs a hostname option from the name of the host declaration if there is one and no hostname has otherwise been provided and the use-host-decl-names flag is set, then adds the new option to the given option_state. This funciton is used for both bootp and dhcp.

Parameters
packetinbound packet received from the client
leaselease associated with the client
optionsoption state to search and update

Definition at line 5732 of file dhcp.c.

◆ validate_packet()

int validate_packet ( struct packet * packet)

Checks if received BOOTP/DHCPv4 packet is sane

Parameters
packetreceived, decoded packet
Returns
1 if packet is sane, 0 if it is not

Definition at line 4538 of file options.c.

◆ validate_port()

u_int16_t validate_port ( char * port)

Definition at line 659 of file inet.c.

◆ validate_port_pair()

u_int16_t validate_port_pair ( char * port)

Definition at line 685 of file inet.c.

◆ wrapsum()

u_int32_t wrapsum ( u_int32_t sum)

Definition at line 83 of file packet.c.

◆ write_billing_class()

int write_billing_class ( struct class * class)

Definition at line 991 of file db.c.

◆ write_billing_classes()

void write_billing_classes ( void )

Definition at line 975 of file db.c.

◆ write_client6_lease()

isc_result_t write_client6_lease ( struct client_state * client,
struct dhc6_lease * lease,
int rewrite,
int sync )

Definition at line 4501 of file dhclient.c.

◆ write_client_lease()

int write_client_lease ( struct client_state * client,
struct client_lease * lease,
int rewrite,
int makesure )

Definition at line 4655 of file dhclient.c.

◆ write_client_pid_file()

void write_client_pid_file ( void )

Definition at line 5275 of file dhclient.c.

◆ write_expression()

int write_expression ( FILE * file,
struct expression * expr,
int col,
int indent,
int firstp )

Definition at line 3298 of file tree.c.

◆ write_failover_state()

int write_failover_state ( dhcp_failover_state_t * )

◆ write_group()

int write_group ( struct group_object * group)

Definition at line 449 of file db.c.

◆ write_host()

int write_host ( struct host_decl * host)

Definition at line 2245 of file dhclient.c.

◆ write_ia()

int write_ia ( const struct ia_xx * ia)

Definition at line 518 of file db.c.

◆ write_lease()

int write_lease ( struct lease * lease)

Definition at line 2239 of file dhclient.c.

◆ write_lease_option()

void write_lease_option ( struct option_cache * oc,
struct packet * packet,
struct lease * lease,
struct client_state * client_state,
struct option_state * in_options,
struct option_state * cfg_options,
struct binding_scope ** scope,
struct universe * u,
void * stuff )

Definition at line 4257 of file dhclient.c.

◆ write_leases()

int write_leases ( void )

Definition at line 2434 of file mdb.c.

◆ write_leases6()

int write_leases6 ( void )

◆ write_named_billing_class()

isc_result_t write_named_billing_class ( const void * key,
unsigned len,
void * object )

Definition at line 879 of file db.c.

◆ write_server_duid()

int write_server_duid ( void )

◆ write_statements()

void write_statements ( FILE * file,
struct executable_statement * statements,
int indent )

Definition at line 759 of file execute.c.

Variable Documentation

◆ abandon_lease_time

u_int32_t abandon_lease_time
extern

Definition at line 99 of file dhcpd.c.

◆ agent_universe

struct universe agent_universe
extern

Definition at line 165 of file stables.c.

◆ authoring_byte_order

int authoring_byte_order
extern

Definition at line 97 of file dhcpd.c.

◆ bind_local_address6

int bind_local_address6
extern

◆ binding_state_names

const char* binding_state_names[]
extern

Definition at line 161 of file stables.c.

◆ bootp_packet_handler

void(* bootp_packet_handler) (struct interface_info *, struct dhcp_packet *, unsigned, unsigned int, struct iaddr, struct hardware *) ( struct interface_info * ,
struct dhcp_packet * ,
unsigned ,
unsigned int ,
struct iaddr ,
struct hardware *  )
extern

Definition at line 70 of file discover.c.

◆ collections

struct collection* collections
extern

Definition at line 34 of file parse.c.

◆ config_universe

struct universe* config_universe
extern

Definition at line 982 of file tables.c.

◆ cur_tv

struct timeval cur_tv
extern

Definition at line 35 of file dispatch.c.

◆ db_time_format

int db_time_format
extern

Definition at line 31 of file print.c.

◆ ddns_conflict_mask

u_int16_t ddns_conflict_mask
extern

◆ ddns_styles

struct enumeration ddns_styles
extern

Definition at line 363 of file stables.c.

◆ ddns_update_style

int ddns_update_style
extern

Definition at line 84 of file dhcpd.c.

◆ default_classification_rules

struct executable_statement* default_classification_rules
extern

Definition at line 31 of file class.c.

◆ default_collection

struct collection default_collection
extern

Definition at line 33 of file parse.c.

◆ default_duid

struct data_string default_duid
extern

Definition at line 78 of file dhclient.c.

◆ dhcp_control_object

dhcp_control_object_t* dhcp_control_object
extern

◆ dhcp_control_object_t

dhcp_control_object_t

Definition at line 2518 of file dhcpd.h.

◆ dhcp_failover_listener_t

dhcp_failover_listener_t

Definition at line 3771 of file dhcpd.h.

◆ dhcp_flink_state_names

const char* dhcp_flink_state_names[]
extern

◆ dhcp_interface_discovery_hook

int(* dhcp_interface_discovery_hook) (struct interface_info *) ( struct interface_info * )
extern

Definition at line 53 of file discover.c.

◆ dhcp_interface_setup_hook

int(* dhcp_interface_setup_hook) (struct interface_info *, struct iaddr *) ( struct interface_info * ,
struct iaddr *  )
extern

Definition at line 52 of file discover.c.

◆ dhcp_interface_shutdown_hook

int(* dhcp_interface_shutdown_hook) (struct interface_info *) ( struct interface_info * )
extern

Definition at line 55 of file discover.c.

◆ dhcp_interface_startup_hook

isc_result_t(* dhcp_interface_startup_hook) (struct interface_info *) ( struct interface_info * )
extern

Definition at line 54 of file discover.c.

◆ dhcp_max_agent_option_packet_length

int dhcp_max_agent_option_packet_length
extern

Definition at line 69 of file dhclient.c.

◆ dhcp_option_default_priority_list

int dhcp_option_default_priority_list[]
extern

◆ dhcp_option_default_priority_list_count

int dhcp_option_default_priority_list_count
extern

◆ dhcp_type_class

omapi_object_type_t* dhcp_type_class
extern

Definition at line 48 of file omapi.c.

◆ dhcp_type_control

omapi_object_type_t* dhcp_type_control
extern

◆ dhcp_type_failover_link

omapi_object_type_t* dhcp_type_failover_link
extern

◆ dhcp_type_failover_listener

omapi_object_type_t* dhcp_type_failover_listener
extern

◆ dhcp_type_failover_state

omapi_object_type_t* dhcp_type_failover_state
extern

◆ dhcp_type_group

omapi_object_type_t* dhcp_type_group
extern

◆ dhcp_type_host

omapi_object_type_t* dhcp_type_host
extern

Definition at line 50 of file omapi.c.

◆ dhcp_type_interface

omapi_object_type_t* dhcp_type_interface
extern

Definition at line 83 of file discover.c.

◆ dhcp_type_lease

omapi_object_type_t* dhcp_type_lease
extern

Definition at line 46 of file omapi.c.

◆ dhcp_type_pool

omapi_object_type_t* dhcp_type_pool
extern

Definition at line 47 of file omapi.c.

◆ dhcp_type_shared_network

omapi_object_type_t* dhcp_type_shared_network
extern

◆ dhcp_type_subclass

omapi_object_type_t* dhcp_type_subclass
extern

Definition at line 49 of file omapi.c.

◆ dhcp_type_subnet

omapi_object_type_t* dhcp_type_subnet
extern

◆ dhcp_universe

struct universe dhcp_universe
extern

◆ dhcpv4_over_dhcpv6

int dhcpv4_over_dhcpv6
extern

Definition at line 51 of file discover.c.

◆ dhcpv6_packet_handler

void(* dhcpv6_packet_handler) (struct interface_info *, const char *, int, int, const struct iaddr *, isc_boolean_t) ( struct interface_info * ,
const char * ,
int ,
int ,
const struct iaddr * ,
isc_boolean_t  )
extern

◆ dhcpv6_universe

struct universe dhcpv6_universe
extern

Definition at line 351 of file tables.c.

◆ do_release_on_roam

int do_release_on_roam
extern

◆ domains

struct domain_search_list* domains
extern

Definition at line 32 of file resolv.c.

◆ dont_use_fsync

int dont_use_fsync
extern

Definition at line 85 of file dhcpd.c.

◆ duid_type

int duid_type
extern

Definition at line 79 of file dhclient.c.

◆ dummy_interfaces

struct interface_info * dummy_interfaces

Definition at line 2855 of file dhcpd.h.

◆ failover_states

dhcp_failover_state_t* failover_states
extern

◆ fallback_interface

struct interface_info * fallback_interface

Definition at line 2855 of file dhcpd.h.

◆ file

const char* file

Definition at line 3802 of file dhcpd.h.

◆ fqdn_universe

struct universe fqdn_universe
extern

Definition at line 318 of file tables.c.

◆ ft_options

struct failover_option_info ft_options[]
extern

◆ ft_sizes

int ft_sizes[]
extern

◆ fto_allowed

u_int32_t fto_allowed[]
extern

◆ global_scope

struct binding_scope* global_scope
extern

Definition at line 38 of file tree.c.

◆ group_name_hash

group_hash_t* group_name_hash
extern

Definition at line 32 of file memory.c.

◆ group_write_hook

int(* group_write_hook) (struct group_object *) ( struct group_object * )
extern

Definition at line 33 of file memory.c.

◆ hardware_types

const char* hardware_types[256]
extern

Definition at line 716 of file tables.c.

◆ have_billing_classes

int have_billing_classes
extern

Definition at line 33 of file class.c.

◆ host_hw_addr_hash

host_hash_t* host_hw_addr_hash
extern

Definition at line 34 of file mdb.c.

◆ host_name_hash

host_hash_t* host_name_hash
extern

Definition at line 36 of file mdb.c.

◆ host_uid_hash

host_hash_t* host_uid_hash
extern

Definition at line 35 of file mdb.c.

◆ ia_na_active

ia_hash_t* ia_na_active
extern

◆ ia_pd_active

ia_hash_t* ia_pd_active
extern

◆ ia_ta_active

ia_hash_t* ia_ta_active
extern

◆ icmp_state

struct icmp_state* icmp_state
extern

Definition at line 34 of file icmp.c.

◆ inpacket_trace

trace_type_t* inpacket_trace
extern

◆ interface_count

int interface_count
extern

Definition at line 90 of file discover.c.

◆ interface_max

int interface_max
extern

Definition at line 91 of file discover.c.

◆ interface_trace

trace_type_t* interface_trace
extern

◆ interface_vector

struct interface_info** interface_vector
extern

Definition at line 89 of file discover.c.

◆ interfaces

struct interface_info* interfaces
extern

Definition at line 42 of file discover.c.

◆ interfaces_requested

int interfaces_requested
extern

Definition at line 71 of file dhclient.c.

◆ known_class

struct class known_class
extern

Definition at line 61 of file dhcpd.c.

◆ lease_hw_addr_hash

lease_id_hash_t* lease_hw_addr_hash
extern

Definition at line 39 of file mdb.c.

◆ lease_id_format

int lease_id_format
extern

Definition at line 98 of file dhcpd.c.

◆ lease_ip_addr_hash

lease_ip_hash_t* lease_ip_addr_hash
extern

Definition at line 38 of file mdb.c.

◆ lease_uid_hash

lease_id_hash_t* lease_uid_hash
extern

Definition at line 37 of file mdb.c.

◆ limited_broadcast

struct in_addr limited_broadcast
extern

Definition at line 57 of file discover.c.

◆ line

const char int line

Definition at line 3802 of file dhcpd.h.

◆ local_address

struct in_addr local_address
extern

Definition at line 60 of file discover.c.

◆ local_address6

struct in6_addr local_address6
extern

◆ local_family

int local_family
extern

Definition at line 59 of file discover.c.

◆ local_port

u_int16_t local_port
extern

Definition at line 48 of file discover.c.

◆ max_ack_delay_secs

int max_ack_delay_secs
extern

◆ max_ack_delay_usecs

int max_ack_delay_usecs
extern

◆ max_outstanding_acks

int max_outstanding_acks
extern

◆ name_servers

struct name_server* name_servers
extern

Definition at line 31 of file resolv.c.

◆ nowait

int nowait
extern

Definition at line 108 of file dhclient.c.

◆ null_failover_option

failover_option_t null_failover_option
extern

◆ numclasseswritten

int numclasseswritten
extern

Definition at line 68 of file mdb.c.

◆ nwip_universe

struct universe nwip_universe
extern

Definition at line 290 of file tables.c.

◆ outpacket_trace

trace_type_t* outpacket_trace
extern

◆ outstanding_pings

int outstanding_pings
extern

Definition at line 49 of file dhcp.c.

◆ path_dhclient_conf

const char* path_dhclient_conf
extern

Definition at line 57 of file dhclient.c.

◆ path_dhclient_db

const char* path_dhclient_db
extern

Definition at line 58 of file dhclient.c.

◆ path_dhclient_duid

const char* path_dhclient_duid
extern

Definition at line 62 of file dhclient.c.

◆ path_dhclient_pid

const char* path_dhclient_pid
extern

Definition at line 59 of file dhclient.c.

◆ path_dhclient_script

char* path_dhclient_script
extern

Definition at line 61 of file dhclient.c.

◆ path_dhcpd_conf

const char* path_dhcpd_conf
extern

Definition at line 101 of file dhcpd.c.

◆ path_dhcpd_db

const char* path_dhcpd_db
extern

Definition at line 102 of file dhcpd.c.

◆ path_dhcpd_pid

const char* path_dhcpd_pid
extern

Definition at line 103 of file dhcpd.c.

◆ path_resolv_conf

char path_resolv_conf[]
extern

Definition at line 33 of file resolv.c.

◆ pools

struct ipv6_pool** pools
extern

◆ prefix_length_mode

int prefix_length_mode
extern

◆ prefix_length_modes

struct enumeration prefix_length_modes
extern

Definition at line 378 of file stables.c.

◆ protocols

struct protocol* protocols
extern

◆ quiet_interface_discovery

int quiet_interface_discovery
extern

Definition at line 47 of file discover.c.

◆ relay_port

u_int16_t relay_port
extern

Definition at line 50 of file discover.c.

◆ remote_port

u_int16_t remote_port
extern

Definition at line 49 of file discover.c.

◆ require_all_ias

int require_all_ias
extern

Definition at line 113 of file dhclient.c.

◆ root_group

struct group* root_group
extern

Definition at line 31 of file memory.c.

◆ rw_queue_empty

struct eventqueue* rw_queue_empty
extern

Definition at line 37 of file dispatch.c.

◆ server_id_check

int server_id_check
extern

Definition at line 86 of file dhcpd.c.

◆ server_universe

struct universe server_universe
extern

Definition at line 176 of file stables.c.

◆ set_gid

gid_t set_gid
extern

◆ set_uid

uid_t set_uid
extern

◆ shared_networks

struct shared_network* shared_networks
extern

Definition at line 33 of file mdb.c.

◆ shutdown_state

enum dhcp_shutdown_state shutdown_state
extern

Definition at line 1638 of file dhcpd.c.

◆ skip_failover_option

failover_option_t skip_failover_option
extern

◆ subnets

struct subnet* subnets
extern

Definition at line 32 of file mdb.c.

◆ syslog_enum

struct enumeration syslog_enum
extern

Definition at line 448 of file stables.c.

◆ timeouts

struct timeout* timeouts
extern

Definition at line 33 of file dispatch.c.

◆ top_level_config

struct client_config top_level_config
extern

Definition at line 32 of file clparse.c.

◆ universe_count

int universe_count
extern

Definition at line 976 of file tables.c.

◆ universe_hash

universe_hash_t* universe_hash
extern

Definition at line 974 of file tables.c.

◆ universe_max

int universe_max

Definition at line 2935 of file dhcpd.h.

◆ universes

struct universe** universes
extern

Definition at line 975 of file tables.c.

◆ unknown_class

struct class unknown_class
extern

Definition at line 60 of file dhcpd.c.

◆ vendor_cfg_option

lease_id_hash_t extern struct option* vendor_cfg_option

Definition at line 1875 of file dhcpd.h.

◆ vsio_universe

struct universe vsio_universe
extern

Definition at line 701 of file tables.c.

◆ wanted_ia_na

int wanted_ia_na
extern

Definition at line 110 of file dhclient.c.

◆ wanted_ia_pd

int wanted_ia_pd
extern

Definition at line 112 of file dhclient.c.

◆ wanted_ia_ta

int wanted_ia_ta
extern

Definition at line 111 of file dhclient.c.