ISC DHCP  4.3.4
A reference DHCPv4 and DHCPv6 implementation
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 "minires.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)   lc_get_first_lease(&LQ)
 
#define LEASE_GET_FIRSTP(LQ)   lc_get_first_lease(LQ)
 
#define LEASE_GET_NEXT(LQ, LEASE)   lc_get_next(&LQ, LEASE)
 
#define LEASE_GET_NEXTP(LQ, LEASE)   lc_get_next(LQ, LEASE)
 
#define LEASE_INSERTP(LQ, LEASE)   lc_add_sorted_lease(LQ, LEASE)
 
#define LEASE_REMOVEP(LQ, LEASE)   lc_unlink_lease(LQ, LEASE)
 
#define LEASE_NOT_EMPTY(LQ)   lc_not_empty(&LQ)
 
#define LEASE_NOT_EMPTYP(LQ)   lc_not_empty(LQ)
 
#define POOL_DESTROYP(LQ)   lc_delete_all(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 DEFAULT_PING_TIMEOUT   1
 
#define DEFAULT_DELAYED_ACK   28 /* default SO_SNDBUF size / 576 bytes */
 
#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 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 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)   (memset (mask, 0, 16))
 
#define OPTION_SET(mask, bit)   (mask [bit >> 8] |= (1 << (bit & 7)))
 
#define OPTION_CLR(mask, bit)   (mask [bit >> 8] &= ~(1 << (bit & 7)))
 
#define OPTION_ISSET(mask, bit)   (mask [bit >> 8] & (1 << (bit & 7)))
 
#define OPTION_ISCLR(mask, bit)   (!OPTION_ISSET (mask, bit))
 
#define OPTION_SPACE(x)   ((x) + 2 * ((x) / 255 + 1))
 
#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 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   0x01
 
#define DDNS_UPDATE_PTR   0x02
 
#define DDNS_INCLUDE_RRSET   0x04
 
#define DDNS_CONFLICT_OVERRIDE   0x08
 
#define DDNS_CLIENT_DID_UPDATE   0x10
 
#define DDNS_EXECUTE_NEXT   0x20
 
#define DDNS_ABORT   0x40
 
#define DDNS_STATIC_LEASE   0x80
 
#define DDNS_ACTIVE_LEASE   0x100
 
#define DDNS_STATE_CLEANUP   0
 
#define DDNS_STATE_ADD_FW_NXDOMAIN   1
 
#define DDNS_STATE_ADD_FW_YXDHCID   2
 
#define DDNS_STATE_ADD_PTR   3
 
#define DDNS_STATE_REM_FW_YXDHCID   17
 
#define DDNS_STATE_REM_FW_NXRR   18
 
#define DDNS_STATE_REM_PTR   19
 
#define DDNS_PRINT_INBOUND   1
 
#define DDNS_PRINT_OUTBOUND   0
 
#define cur_time   cur_tv.tv_sec
 
#define skip_token(a, b, c)   ((void) next_token((a),(b),(c)))
 
#define DEFAULT_TIME_FORMAT   0
 
#define LOCAL_TIME_FORMAT   1
 
#define print_hex_1(len, data, limit)   print_hex(len, data, limit, 0)
 
#define print_hex_2(len, data, limit)   print_hex(len, data, limit, 1)
 
#define print_hex_3(len, data, limit)   print_hex(len, data, limit, 2)
 
#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
}
 
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_STOPPED = 8,
  S_DECLINED = 9
}
 
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) More...
 
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. More...
 
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)
 
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)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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)
 
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)
 
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 *)
 
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 *)
 
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 *)
 
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 *)
 
void script_write_requested (struct client_state *)
 
int script_go (struct client_state *)
 
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 go_daemon (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 (void)
 
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_tsig_key (ns_tsig_key **, const char *, struct dns_zone *)
 
void tkey_free (ns_tsig_key **)
 
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 *)
 
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_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. More...
 
isc_result_t ipv6_pool_reference (struct ipv6_pool **pool, struct ipv6_pool *src, const char *file, int line)
 reference an IPv6 pool structure. More...
 
isc_result_t ipv6_pool_dereference (struct ipv6_pool **pool, const char *file, int line)
 de-reference an IPv6 pool structure. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
isc_result_t ipv6_pond_reference (struct ipv6_pond **pond, struct ipv6_pond *src, const char *file, int line)
 reference an IPv6 pond structure. More...
 
isc_result_t ipv6_pond_dereference (struct ipv6_pond **pond, const char *file, int line)
 de-reference an IPv6 pond structure. More...
 
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
 
int num_pools
 
lease_id_hash_t extern struct optionvendor_cfg_option
 
struct timeval cur_tv
 
int ddns_update_style
 
int dont_use_fsync
 
int server_id_check
 
int prefix_length_mode
 
int authoring_byte_order
 
int lease_id_format
 
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
 
u_int16_t local_port
 
u_int16_t remote_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_stateicmp_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

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

Definition at line 1552 of file dhcpd.h.

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

Definition at line 1556 of file dhcpd.h.

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

Definition at line 1530 of file dhcpd.h.

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

Definition at line 1584 of file dhcpd.h.

#define _PATH_RESOLV_CONF   "/etc/resolv.conf"

Definition at line 1576 of file dhcpd.h.

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

Definition at line 207 of file dhcpd.h.

#define BOOTP_LEASE   2

Definition at line 589 of file dhcpd.h.

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

Definition at line 112 of file dhcpd.h.

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

Definition at line 109 of file dhcpd.h.

#define CL_BACKOFF_CUTOFF   5

Definition at line 864 of file dhcpd.h.

#define CL_BOOTP_POLICY   7

Definition at line 866 of file dhcpd.h.

#define CL_DEFAULT_BACKOFF_CUTOFF   120

Definition at line 891 of file dhcpd.h.

#define CL_DEFAULT_BOOTP_POLICY   P_ACCEPT

Definition at line 899 of file dhcpd.h.

#define CL_DEFAULT_INITIAL_INTERVAL   10

Definition at line 895 of file dhcpd.h.

#define CL_DEFAULT_REBOOT_TIMEOUT   10

Definition at line 883 of file dhcpd.h.

#define CL_DEFAULT_REQUESTED_OPTIONS
Value:
DHO_HOST_NAME }
#define DHO_TIME_OFFSET
Definition: dhcp.h:94
#define DHO_SUBNET_MASK
Definition: dhcp.h:93
#define DHO_DOMAIN_NAME_SERVERS
Definition: dhcp.h:98
#define DHO_DOMAIN_NAME
Definition: dhcp.h:107
#define DHO_BROADCAST_ADDRESS
Definition: dhcp.h:120
#define DHO_ROUTERS
Definition: dhcp.h:95

Definition at line 903 of file dhcpd.h.

#define CL_DEFAULT_RETRY_INTERVAL   300

Definition at line 887 of file dhcpd.h.

#define CL_DEFAULT_SELECT_INTERVAL   0

Definition at line 879 of file dhcpd.h.

#define CL_DEFAULT_TIMEOUT   60

Definition at line 875 of file dhcpd.h.

#define CL_INITIAL_INTERVAL   6

Definition at line 865 of file dhcpd.h.

#define CL_MEDIA   12

Definition at line 871 of file dhcpd.h.

#define CL_REBOOT_TIMEOUT   3

Definition at line 862 of file dhcpd.h.

#define CL_REJECT_LIST   13

Definition at line 872 of file dhcpd.h.

#define CL_REQUESTED_LEASE_TIME   10

Definition at line 869 of file dhcpd.h.

#define CL_REQUESTED_OPTIONS   9

Definition at line 868 of file dhcpd.h.

#define CL_RETRY_INTERVAL   4

Definition at line 863 of file dhcpd.h.

#define CL_SCRIPT_NAME   8

Definition at line 867 of file dhcpd.h.

#define CL_SELECT_INTERVAL   2

Definition at line 861 of file dhcpd.h.

#define CL_SEND_OPTIONS   11

Definition at line 870 of file dhcpd.h.

#define CL_TIMEOUT   1

Definition at line 860 of file dhcpd.h.

#define CLASS_DECL   4

Definition at line 686 of file dhcpd.h.

#define CLASS_DECL_DELETED   1

Definition at line 1098 of file dhcpd.h.

#define CLASS_DECL_DYNAMIC   2

Definition at line 1099 of file dhcpd.h.

#define CLASS_DECL_STATIC   4

Definition at line 1100 of file dhcpd.h.

#define CLASS_DECL_SUBCLASS   8

Definition at line 1101 of file dhcpd.h.

#define CLASS_TYPE_CLASS   2

Definition at line 1062 of file dhcpd.h.

#define CLASS_TYPE_SUBCLASS   3

Definition at line 1063 of file dhcpd.h.

#define CLASS_TYPE_USER   1

Definition at line 1061 of file dhcpd.h.

#define CLASS_TYPE_VENDOR   0

Definition at line 1060 of file dhcpd.h.

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

#define cur_time   cur_tv.tv_sec

Definition at line 2071 of file dhcpd.h.

#define DDNS_ABORT   0x40

Definition at line 1738 of file dhcpd.h.

#define DDNS_ACTIVE_LEASE   0x100

Definition at line 1740 of file dhcpd.h.

#define DDNS_CLIENT_DID_UPDATE   0x10

Definition at line 1736 of file dhcpd.h.

#define DDNS_CONFLICT_OVERRIDE   0x08

Definition at line 1735 of file dhcpd.h.

#define DDNS_EXECUTE_NEXT   0x20

Definition at line 1737 of file dhcpd.h.

#define DDNS_INCLUDE_RRSET   0x04

Definition at line 1734 of file dhcpd.h.

#define DDNS_PRINT_INBOUND   1

Definition at line 1758 of file dhcpd.h.

#define DDNS_PRINT_OUTBOUND   0

Definition at line 1759 of file dhcpd.h.

#define DDNS_STATE_ADD_FW_NXDOMAIN   1

Definition at line 1747 of file dhcpd.h.

#define DDNS_STATE_ADD_FW_YXDHCID   2

Definition at line 1748 of file dhcpd.h.

#define DDNS_STATE_ADD_PTR   3

Definition at line 1749 of file dhcpd.h.

#define DDNS_STATE_CLEANUP   0

Definition at line 1745 of file dhcpd.h.

#define DDNS_STATE_REM_FW_NXRR   18

Definition at line 1752 of file dhcpd.h.

#define DDNS_STATE_REM_FW_YXDHCID   17

Definition at line 1751 of file dhcpd.h.

#define DDNS_STATE_REM_PTR   19

Definition at line 1753 of file dhcpd.h.

#define DDNS_STATIC_LEASE   0x80

Definition at line 1739 of file dhcpd.h.

#define DDNS_UPDATE_ADDR   0x01

Definition at line 1732 of file dhcpd.h.

#define DDNS_UPDATE_PTR   0x02

Definition at line 1733 of file dhcpd.h.

#define DDNS_UPDATE_STYLE_AD_HOC   1

Definition at line 701 of file dhcpd.h.

#define DDNS_UPDATE_STYLE_INTERIM   2

Definition at line 702 of file dhcpd.h.

#define DDNS_UPDATE_STYLE_NONE   0

Definition at line 700 of file dhcpd.h.

#define DDNS_UPDATE_STYLE_STANDARD   3

Definition at line 703 of file dhcpd.h.

#define DEFAULT_ACK_DELAY_SECS   0

Definition at line 814 of file dhcpd.h.

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

Definition at line 818 of file dhcpd.h.

#define DEFAULT_CACHE_THRESHOLD   25

Definition at line 826 of file dhcpd.h.

#define DEFAULT_DDNS_TTL   3600

Definition at line 842 of file dhcpd.h.

#define DEFAULT_DEFAULT_LEASE_TIME   43200

Definition at line 830 of file dhcpd.h.

#define DEFAULT_DELAYED_ACK   28 /* default SO_SNDBUF size / 576 bytes */

Definition at line 810 of file dhcpd.h.

#define DEFAULT_MAX_LEASE_TIME   86400

Definition at line 838 of file dhcpd.h.

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

Definition at line 822 of file dhcpd.h.

#define DEFAULT_MIN_LEASE_TIME   300

Definition at line 834 of file dhcpd.h.

#define DEFAULT_PING_TIMEOUT   1

Definition at line 806 of file dhcpd.h.

#define DEFAULT_SPACE_HASH_SIZE   11

Definition at line 145 of file dhcpd.h.

#define DEFAULT_TIME_FORMAT   0

Definition at line 2549 of file dhcpd.h.

#define DHC6_ADDR_DEPREFFED   0x01

Definition at line 1130 of file dhcpd.h.

#define DHC6_ADDR_EXPIRED   0x02

Definition at line 1131 of file dhcpd.h.

#define DHCP_LOG_OPTIONS   LOG_NDELAY | LOG_PID

Definition at line 1596 of file dhcpd.h.

#define DHCPD_LOG_FACILITY   LOG_DAEMON

Definition at line 1588 of file dhcpd.h.

#define DISCOVER_RELAY   3

Definition at line 695 of file dhcpd.h.

#define DISCOVER_REQUESTED   5

Definition at line 697 of file dhcpd.h.

#define DISCOVER_RUNNING   0

Definition at line 692 of file dhcpd.h.

#define DISCOVER_SERVER   1

Definition at line 693 of file dhcpd.h.

#define DISCOVER_SERVER46   4

Definition at line 696 of file dhcpd.h.

#define DISCOVER_UNCONFIGURED   2

Definition at line 694 of file dhcpd.h.

#define DNS_HASH_SIZE   0 /* Default. */

Definition at line 140 of file dhcpd.h.

#define DNS_ZONE_ACTIVE   0

Definition at line 1479 of file dhcpd.h.

#define DNS_ZONE_INACTIVE   1

Definition at line 1480 of file dhcpd.h.

#define EOL   '\n'

Definition at line 88 of file dhcpd.h.

#define EPHEMERAL_FLAGS
Value:
#define MS_NULL_TERMINATION
Definition: dhcpd.h:591
#define RESERVED_LEASE
Definition: dhcpd.h:590
#define UNICAST_BROADCAST_HACK
Definition: dhcpd.h:595
#define BOOTP_LEASE
Definition: dhcpd.h:589

Definition at line 601 of file dhcpd.h.

#define EXPIRED_IPV6_CLEANUP_TIME   (60*60)

Definition at line 1622 of file dhcpd.h.

#define FIND_FORWARD   0

Definition at line 3133 of file dhcpd.h.

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

Definition at line 3825 of file dhcpd.h.

#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:1729

Definition at line 3829 of file dhcpd.h.

#define FIND_REVERSE   1

Definition at line 3134 of file dhcpd.h.

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

Definition at line 153 of file dhcpd.h.

#define FTS_ABANDONED   5

Definition at line 537 of file dhcpd.h.

#define FTS_ACTIVE   2

Definition at line 534 of file dhcpd.h.

#define FTS_BACKUP   7

Definition at line 539 of file dhcpd.h.

#define FTS_EXPIRED   3

Definition at line 535 of file dhcpd.h.

#define FTS_FREE   1

Definition at line 533 of file dhcpd.h.

#define FTS_LAST   FTS_BACKUP

Definition at line 543 of file dhcpd.h.

#define FTS_RELEASED   4

Definition at line 536 of file dhcpd.h.

#define FTS_RESET   6

Definition at line 538 of file dhcpd.h.

#define GROUP_DECL   5

Definition at line 687 of file dhcpd.h.

#define GROUP_HASH_SIZE   0 /* Default. */

Definition at line 180 of file dhcpd.h.

#define GROUP_OBJECT_DELETED   1

Definition at line 920 of file dhcpd.h.

#define GROUP_OBJECT_DYNAMIC   2

Definition at line 921 of file dhcpd.h.

#define GROUP_OBJECT_STATIC   4

Definition at line 922 of file dhcpd.h.

#define HARDWARE_ADDR_LEN   20

Definition at line 483 of file dhcpd.h.

#define HARDWARE_ADDR_LEN_IOCTL   8

Definition at line 486 of file dhcpd.h.

#define HOST_DECL   1

Definition at line 683 of file dhcpd.h.

#define HOST_DECL_DELETED   1

Definition at line 956 of file dhcpd.h.

#define HOST_DECL_DYNAMIC   2

Definition at line 957 of file dhcpd.h.

#define HOST_DECL_STATIC   4

Definition at line 958 of file dhcpd.h.

#define HOST_HASH_SIZE   22501

Definition at line 186 of file dhcpd.h.

#define INTERFACE_AUTOMATIC   2

Definition at line 1386 of file dhcpd.h.

#define INTERFACE_DOWNSTREAM   8

Definition at line 1388 of file dhcpd.h.

#define INTERFACE_REQUESTED   1

Definition at line 1385 of file dhcpd.h.

#define INTERFACE_RUNNING   4

Definition at line 1387 of file dhcpd.h.

#define INTERFACE_STREAMS   (INTERFACE_DOWNSTREAM | INTERFACE_UPSTREAM)

Definition at line 1390 of file dhcpd.h.

#define INTERFACE_UPSTREAM   16

Definition at line 1389 of file dhcpd.h.

#define LEASE_GET_FIRST (   LQ)    lc_get_first_lease(&LQ)

Definition at line 258 of file dhcpd.h.

#define LEASE_GET_FIRSTP (   LQ)    lc_get_first_lease(LQ)

Definition at line 259 of file dhcpd.h.

#define LEASE_GET_NEXT (   LQ,
  LEASE 
)    lc_get_next(&LQ, LEASE)

Definition at line 260 of file dhcpd.h.

#define LEASE_GET_NEXTP (   LQ,
  LEASE 
)    lc_get_next(LQ, LEASE)

Definition at line 261 of file dhcpd.h.

#define LEASE_HASH_SIZE   100003

Definition at line 196 of file dhcpd.h.

#define LEASE_INSERTP (   LQ,
  LEASE 
)    lc_add_sorted_lease(LQ, LEASE)

Definition at line 262 of file dhcpd.h.

#define LEASE_NOT_EMPTY (   LQ)    lc_not_empty(&LQ)

Definition at line 264 of file dhcpd.h.

#define LEASE_NOT_EMPTYP (   LQ)    lc_not_empty(LQ)

Definition at line 265 of file dhcpd.h.

#define LEASE_REMOVEP (   LQ,
  LEASE 
)    lc_unlink_lease(LQ, LEASE)

Definition at line 263 of file dhcpd.h.

#define LEASE_STRUCT   struct leasechain

Definition at line 256 of file dhcpd.h.

#define LEASE_STRUCT_PTR   struct leasechain *

Definition at line 257 of file dhcpd.h.

#define LOCAL_TIME_FORMAT   1

Definition at line 2550 of file dhcpd.h.

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

Definition at line 3819 of file dhcpd.h.

#define MAX_DEFAULT_DDNS_TTL   3600

Definition at line 845 of file dhcpd.h.

#define MAX_TIME   0x7fffffff

Definition at line 1591 of file dhcpd.h.

#define MIN_LEASE_WRITE   15

Definition at line 849 of file dhcpd.h.

#define MIN_TIME   0

Definition at line 1592 of file dhcpd.h.

#define MS_NULL_TERMINATION   8

Definition at line 591 of file dhcpd.h.

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

Definition at line 149 of file dhcpd.h.

#define ON_ACK_QUEUE   32

Definition at line 593 of file dhcpd.h.

#define ON_DEFERRED_QUEUE   128

Definition at line 596 of file dhcpd.h.

#define ON_QUEUE   (ON_UPDATE_QUEUE | ON_ACK_QUEUE)

Definition at line 594 of file dhcpd.h.

#define ON_UPDATE_QUEUE   16

Definition at line 592 of file dhcpd.h.

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

Definition at line 1507 of file dhcpd.h.

#define OPTION_HAD_NULLS   0x00000001

Definition at line 392 of file dhcpd.h.

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

Definition at line 225 of file dhcpd.h.

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

Definition at line 224 of file dhcpd.h.

#define OPTION_HASH_SIZE   17

Definition at line 223 of file dhcpd.h.

#define OPTION_ISCLR (   mask,
  bit 
)    (!OPTION_ISSET (mask, bit))

Definition at line 1509 of file dhcpd.h.

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

Definition at line 1508 of file dhcpd.h.

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

Definition at line 1506 of file dhcpd.h.

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

Definition at line 1513 of file dhcpd.h.

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

Definition at line 1505 of file dhcpd.h.

#define PACKET_MAX_CLASSES   5

Definition at line 452 of file dhcpd.h.

#define PERSISTENT_FLAGS   (ON_ACK_QUEUE | ON_UPDATE_QUEUE)

Definition at line 599 of file dhcpd.h.

#define PLM_EXACT   2

Definition at line 854 of file dhcpd.h.

#define PLM_IGNORE   0

Definition at line 852 of file dhcpd.h.

#define PLM_MAXIMUM   4

Definition at line 856 of file dhcpd.h.

#define PLM_MINIMUM   3

Definition at line 855 of file dhcpd.h.

#define PLM_PREFER   1

Definition at line 853 of file dhcpd.h.

#define POND_TRACK_MAX   ISC_UINT64_MAX

Definition at line 1729 of file dhcpd.h.

#define POOL_DECL   6

Definition at line 688 of file dhcpd.h.

#define POOL_DESTROYP (   LQ)    lc_delete_all(LQ)

Definition at line 266 of file dhcpd.h.

#define print_hex_1 (   len,
  data,
  limit 
)    print_hex(len, data, limit, 0)

Definition at line 2568 of file dhcpd.h.

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

Definition at line 2569 of file dhcpd.h.

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

Definition at line 2570 of file dhcpd.h.

#define QUAD_CODE_HASH_SIZE   WORD_CODE_HASH_SIZE

Definition at line 136 of file dhcpd.h.

#define QUAD_NAME_HASH_SIZE   WORD_NAME_HASH_SIZE

Definition at line 133 of file dhcpd.h.

#define RESERVED_LEASE   4

Definition at line 590 of file dhcpd.h.

#define ROOT_GROUP   0

Definition at line 682 of file dhcpd.h.

#define SCLASS_HASH_SIZE   12007

Definition at line 203 of file dhcpd.h.

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

Definition at line 217 of file dhcpd.h.

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

Definition at line 1026 of file dhcpd.h.

#define SHARED_NET_DECL   2

Definition at line 684 of file dhcpd.h.

#define skip_token (   a,
  b,
 
)    ((void) next_token((a),(b),(c)))

Definition at line 2125 of file dhcpd.h.

#define STATIC_LEASE   1

Definition at line 588 of file dhcpd.h.

#define SUBNET_DECL   3

Definition at line 685 of file dhcpd.h.

#define SV_ADAPTIVE_LEASE_TIME_THRESHOLD   50

Definition at line 756 of file dhcpd.h.

#define SV_ALLOW_BOOTING   9

Definition at line 715 of file dhcpd.h.

#define SV_ALLOW_BOOTP   8

Definition at line 714 of file dhcpd.h.

#define SV_ALWAYS_BROADCAST   22

Definition at line 728 of file dhcpd.h.

#define SV_ALWAYS_REPLY_RFC1048   20

Definition at line 726 of file dhcpd.h.

#define SV_AUTHORITATIVE   18

Definition at line 724 of file dhcpd.h.

#define SV_BOOT_UNKNOWN_CLIENTS   6

Definition at line 712 of file dhcpd.h.

#define SV_BOOTP_LEASE_CUTOFF   4

Definition at line 710 of file dhcpd.h.

#define SV_BOOTP_LEASE_LENGTH   5

Definition at line 711 of file dhcpd.h.

#define SV_CACHE_THRESHOLD   78

Definition at line 793 of file dhcpd.h.

#define SV_CLIENT_UPDATES   40

Definition at line 746 of file dhcpd.h.

#define SV_DDNS_CONFLICT_DETECT   48

Definition at line 754 of file dhcpd.h.

#define SV_DDNS_DOMAIN_NAME   23

Definition at line 729 of file dhcpd.h.

#define SV_DDNS_HOST_NAME   24

Definition at line 730 of file dhcpd.h.

#define SV_DDNS_LOCAL_ADDRESS4   80

Definition at line 795 of file dhcpd.h.

#define SV_DDNS_LOCAL_ADDRESS6   81

Definition at line 796 of file dhcpd.h.

#define SV_DDNS_REV_DOMAIN_NAME   25

Definition at line 731 of file dhcpd.h.

#define SV_DDNS_TTL   38

Definition at line 744 of file dhcpd.h.

#define SV_DDNS_UPDATE_STYLE   39

Definition at line 745 of file dhcpd.h.

#define SV_DDNS_UPDATES   30

Definition at line 736 of file dhcpd.h.

#define SV_DECLINES   29

Definition at line 735 of file dhcpd.h.

#define SV_DEFAULT_LEASE_TIME   1

Definition at line 707 of file dhcpd.h.

#define SV_DELAYED_ACK   58

Definition at line 764 of file dhcpd.h.

#define SV_DHCPV6_LEASE_FILE_NAME   54

Definition at line 760 of file dhcpd.h.

#define SV_DHCPV6_PID_FILE_NAME   55

Definition at line 761 of file dhcpd.h.

#define SV_DHCPV6_SET_TEE_TIMES   88

Definition at line 803 of file dhcpd.h.

#define SV_DO_FORWARD_UPDATES   45

Definition at line 751 of file dhcpd.h.

#define SV_DO_REVERSE_UPDATES   51

Definition at line 757 of file dhcpd.h.

#define SV_DONT_USE_FSYNC   79

Definition at line 794 of file dhcpd.h.

#define SV_DUPLICATES   28

Definition at line 734 of file dhcpd.h.

#define SV_DYNAMIC_BOOTP   7

Definition at line 713 of file dhcpd.h.

#define SV_ECHO_CLIENT_ID   85

Definition at line 800 of file dhcpd.h.

#define SV_FILENAME   15

Definition at line 721 of file dhcpd.h.

#define SV_FQDN_REPLY   52

Definition at line 758 of file dhcpd.h.

#define SV_GET_LEASE_HOSTNAMES   11

Definition at line 717 of file dhcpd.h.

#define SV_IGNORE_CLIENT_UIDS   82

Definition at line 797 of file dhcpd.h.

#define SV_LEASE_FILE_NAME   26

Definition at line 732 of file dhcpd.h.

#define SV_LEASEQUERY   49

Definition at line 755 of file dhcpd.h.

#define SV_LIMIT_ADDRS_PER_IA   56

Definition at line 762 of file dhcpd.h.

#define SV_LIMIT_PREFS_PER_IA   57

Definition at line 763 of file dhcpd.h.

#define SV_LIMITED_BROADCAST_ADDRESS   33

Definition at line 739 of file dhcpd.h.

#define SV_LOCAL_ADDRESS   35

Definition at line 741 of file dhcpd.h.

#define SV_LOCAL_PORT   32

Definition at line 738 of file dhcpd.h.

#define SV_LOG_FACILITY   44

Definition at line 750 of file dhcpd.h.

#define SV_LOG_THRESHOLD_HIGH   84

Definition at line 799 of file dhcpd.h.

#define SV_LOG_THRESHOLD_LOW   83

Definition at line 798 of file dhcpd.h.

#define SV_MAX_ACK_DELAY   59

Definition at line 765 of file dhcpd.h.

#define SV_MAX_LEASE_TIME   2

Definition at line 708 of file dhcpd.h.

#define SV_MIN_LEASE_TIME   3

Definition at line 709 of file dhcpd.h.

#define SV_MIN_SECS   14

Definition at line 720 of file dhcpd.h.

#define SV_NEXT_SERVER   17

Definition at line 723 of file dhcpd.h.

#define SV_OMAPI_KEY   36

Definition at line 742 of file dhcpd.h.

#define SV_OMAPI_PORT   31

Definition at line 737 of file dhcpd.h.

#define SV_ONE_LEASE_PER_CLIENT   10

Definition at line 716 of file dhcpd.h.

#define SV_PID_FILE_NAME   27

Definition at line 733 of file dhcpd.h.

#define SV_PING_CHECKS   42

Definition at line 748 of file dhcpd.h.

#define SV_PING_TIMEOUT   46

Definition at line 752 of file dhcpd.h.

#define SV_PREFER_LIFETIME   53

Definition at line 759 of file dhcpd.h.

#define SV_PREFIX_LEN_MODE   87

Definition at line 802 of file dhcpd.h.

#define SV_REMOTE_PORT   34

Definition at line 740 of file dhcpd.h.

#define SV_RESERVE_INFINITE   47

Definition at line 753 of file dhcpd.h.

#define SV_SERVER_ID_CHECK   86

Definition at line 801 of file dhcpd.h.

#define SV_SERVER_NAME   16

Definition at line 722 of file dhcpd.h.

#define SV_SITE_OPTION_SPACE   21

Definition at line 727 of file dhcpd.h.

#define SV_STASH_AGENT_OPTIONS   37

Definition at line 743 of file dhcpd.h.

#define SV_UPDATE_OPTIMIZATION   41

Definition at line 747 of file dhcpd.h.

#define SV_UPDATE_STATIC_LEASES   43

Definition at line 749 of file dhcpd.h.

#define SV_USE_HOST_DECL_NAMES   12

Definition at line 718 of file dhcpd.h.

#define SV_USE_LEASE_ADDR_FOR_DEFAULT_ROUTE   13

Definition at line 719 of file dhcpd.h.

#define SV_VENDOR_OPTION_SPACE   19

Definition at line 725 of file dhcpd.h.

#define UNICAST_BROADCAST_HACK   64

Definition at line 595 of file dhcpd.h.

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

Definition at line 176 of file dhcpd.h.

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

Definition at line 172 of file dhcpd.h.

#define VIVCO_HASH_SIZE   127

Definition at line 160 of file dhcpd.h.

#define VIVSO_HASH_SIZE   VIVCO_HASH_SIZE

Definition at line 164 of file dhcpd.h.

#define VSIO_HASH_SIZE   VIVCO_HASH_SIZE

Definition at line 168 of file dhcpd.h.

#define WORD_CODE_HASH_SIZE   16384

Definition at line 124 of file dhcpd.h.

#define WORD_NAME_HASH_SIZE   20479

Definition at line 121 of file dhcpd.h.

Typedef Documentation

typedef u_int8_t binding_state_t

Definition at line 540 of file dhcpd.h.

typedef struct hash_table class_hash_t

Definition at line 83 of file dhcpd.h.

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

Definition at line 1763 of file dhcpd.h.

typedef struct dhcp_ddns_cb dhcp_ddns_cb_t
typedef struct hash_table dns_zone_hash_t

Definition at line 79 of file dhcpd.h.

typedef struct hash_table group_hash_t

Definition at line 75 of file dhcpd.h.

typedef struct hash_table host_hash_t

Definition at line 82 of file dhcpd.h.

typedef struct hash_table ia_hash_t

Definition at line 1601 of file dhcpd.h.

typedef struct hash_table iasubopt_hash_t

Definition at line 1602 of file dhcpd.h.

typedef struct hash_table lease_id_hash_t

Definition at line 81 of file dhcpd.h.

typedef struct hash_table lease_ip_hash_t

Definition at line 80 of file dhcpd.h.

Definition at line 78 of file dhcpd.h.

typedef unsigned char option_mask[16]

Definition at line 1502 of file dhcpd.h.

Definition at line 77 of file dhcpd.h.

typedef time_t TIME

Definition at line 85 of file dhcpd.h.

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

Definition at line 1414 of file dhcpd.h.

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

Definition at line 1415 of file dhcpd.h.

typedef struct hash_table universe_hash_t

Definition at line 76 of file dhcpd.h.

Enumeration Type Documentation

Enumerator
server_startup 
server_running 
server_shutdown 
server_hibernate 
server_awaken 

Definition at line 519 of file dhcpd.h.

Enumerator
P_NONE 
P_REBOOT 
P_RELEASE 

Definition at line 1182 of file dhcpd.h.

Enumerator
shutdown_listeners 
shutdown_omapi_connections 
shutdown_drop_omapi_connections 
shutdown_dhcp 
shutdown_done 

Definition at line 269 of file dhcpd.h.

enum dhcp_state
Enumerator
S_REBOOTING 
S_INIT 
S_SELECTING 
S_REQUESTING 
S_BOUND 
S_RENEWING 
S_REBINDING 
S_STOPPED 
S_DECLINED 

Definition at line 1169 of file dhcpd.h.

enum policy
Enumerator
P_IGNORE 
P_ACCEPT 
P_PREFER 
P_REQUIRE 
P_DONT 

Definition at line 1190 of file dhcpd.h.

Function Documentation

void abandon_lease ( struct lease ,
const char *   
)

Definition at line 1808 of file mdb.c.

void ack_lease ( struct packet ,
struct lease ,
unsigned  int,
TIME  ,
char *  ,
int  ,
struct host_decl  
)

Definition at line 2133 of file dhcp.c.

void add_enumeration ( struct enumeration )

Definition at line 37 of file parse.c.

isc_result_t add_ipv6_pool ( struct ipv6_pool pool)

Definition at line 1845 of file mdb6.c.

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

Definition at line 1234 of file mdb6.c.

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

Definition at line 4273 of file options.c.

void add_route_default_gateway ( struct interface_info ,
struct in_addr   
)
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_timeout ( struct timeval *  ,
void(*)(void *)  ,
void *  ,
tvref_t  ,
tvunref_t   
)

Definition at line 198 of file dispatch.c.

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

Definition at line 267 of file inet.c.

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

Definition at line 211 of file inet.c.

int addr_eq ( struct iaddr  ,
struct iaddr   
)

Definition at line 166 of file inet.c.

int addr_match ( struct iaddr ,
struct iaddrmatch  
)

Definition at line 184 of file inet.c.

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

Definition at line 238 of file inet.c.

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

Definition at line 4822 of file dhcp.c.

void also_save_option ( struct universe ,
struct option_state ,
struct option_cache  
)

Definition at line 2674 of file options.c.

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

Definition at line 2886 of file options.c.

int append_option_buffer ( struct universe ,
struct option_state ,
struct buffer ,
unsigned char *  ,
unsigned  ,
unsigned  ,
int   
)

Definition at line 2414 of file options.c.

void assemble_ethernet_header ( struct interface_info ,
unsigned char *  ,
unsigned *  ,
struct hardware  
)
void assemble_hw_header ( struct interface_info ,
unsigned char *  ,
unsigned *  ,
struct hardware  
)
void assemble_tr_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   
)
int bill_class ( struct lease ,
struct class  
)

Definition at line 303 of file class.c.

int bind_ds_value ( struct binding_scope **  ,
const char *  ,
struct data_string  
)

Definition at line 4080 of file tree.c.

void bind_lease ( struct client_state )

Definition at line 1824 of file dhclient.c.

int binding_scope_allocate ( struct binding_scope **  ,
const char *  ,
int   
)

Definition at line 1194 of file alloc.c.

int binding_scope_dereference ( struct binding_scope **  ,
const char *  ,
int   
)

Definition at line 3786 of file tree.c.

isc_result_t binding_scope_get_value ( omapi_value_t **  ,
struct binding_scope ,
omapi_data_string_t  
)

Definition at line 2471 of file omapi.c.

int binding_scope_reference ( struct binding_scope **  ,
struct binding_scope ,
const char *  ,
int   
)

Definition at line 1227 of file alloc.c.

isc_result_t binding_scope_set_value ( struct binding_scope ,
int  ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 2395 of file omapi.c.

isc_result_t binding_scope_stuff_values ( omapi_object_t ,
struct binding_scope  
)

Definition at line 2541 of file omapi.c.

int binding_value_allocate ( struct binding_value **  ,
const char *  ,
int   
)

Definition at line 500 of file alloc.c.

int binding_value_dereference ( struct binding_value **  ,
const char *  ,
int   
)

Definition at line 652 of file tree.c.

int binding_value_reference ( struct binding_value **  ,
struct binding_value ,
const char *  ,
int   
)

Definition at line 520 of file alloc.c.

void bootp ( struct packet )

Definition at line 1987 of file dhclient.c.

struct iaddr broadcast_addr ( struct iaddr  ,
struct iaddr   
)

Definition at line 112 of file inet.c.

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

Definition at line 1545 of file print.c.

int buffer_allocate ( struct buffer **  ,
unsigned  ,
const char *  ,
int   
)

Definition at line 679 of file alloc.c.

int buffer_dereference ( struct buffer **  ,
const char *  ,
int   
)

Definition at line 726 of file alloc.c.

int buffer_reference ( struct buffer **  ,
struct buffer ,
const char *  ,
int   
)

Definition at line 698 of file alloc.c.

void build_server_oro ( struct data_string ,
struct option_state ,
const char *  ,
int   
)

Definition at line 2598 of file options.c.

int can_receive_unicast_unconfigured ( struct interface_info )
int can_unicast_without_arp ( struct interface_info )
void cancel_all_timeouts ( void  )
void cancel_timeout ( void(*)(void *)  ,
void *   
)

Definition at line 390 of file dispatch.c.

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

Definition at line 184 of file mdb.c.

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

Definition at line 1403 of file dhclient.c.

u_int32_t checksum ( unsigned char *  ,
unsigned  ,
u_int32_t   
)

Definition at line 45 of file packet.c.

void classification_setup ( void  )

Definition at line 45 of file class.c.

void classify ( struct packet ,
struct class  
)

Definition at line 1411 of file dhclient.c.

void classify_client ( struct packet )

Definition at line 63 of file class.c.

void cleanup ( void  )
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 1124 of file mdb6.c.

void client_dns_remove ( struct client_state client,
struct iaddr addr 
)
isc_result_t client_dns_update ( struct client_state client,
dhcp_ddns_cb_t ddns_cb 
)
void client_dns_update_timeout ( void *  cp)
void client_envadd ( struct client_state ,
const char *  ,
const char *  ,
const char *  ,
  ... 
)
void client_location_changed ( void  )

Definition at line 4834 of file dhclient.c.

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 *   
)

Definition at line 4431 of file dhclient.c.

int clone_group ( struct group **  ,
struct group ,
const char *  ,
int   
)

Definition at line 130 of file memory.c.

int commit_leases ( void  )

Definition at line 1965 of file dhclient.c.

int commit_leases_timed ( void  )

Definition at line 1043 of file db.c.

void commit_leases_timeout ( void *  )

Definition at line 1003 of file db.c.

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.

isc_result_t conf_file_subparse ( struct parse ,
struct group ,
int   
)

Definition at line 242 of file confpars.c.

binding_state_t conflict_binding_state_transition_check ( struct lease ,
dhcp_failover_state_t *  ,
binding_state_t  ,
u_int32_t   
)
pair cons ( caddr_t  ,
pair   
)

Definition at line 137 of file tree.c.

unsigned cons_agent_information_options ( struct option_state ,
struct dhcp_packet ,
unsigned  ,
unsigned   
)

Definition at line 5058 of file dhclient.c.

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 *   
)

Definition at line 517 of file options.c.

void convert_address_range ( struct parse ,
jrefproto   
)
void convert_class_decl ( struct parse ,
jrefproto   
)
void convert_class_statement ( struct parse ,
jrefproto  ,
int   
)
void convert_date ( struct parse ,
jrefproto  ,
char *   
)
void convert_filename_decl ( struct parse ,
jrefproto   
)
void convert_fixed_addr_decl ( struct parse ,
jrefproto   
)
void convert_hardware_addr ( struct parse ,
jrefproto   
)
void convert_hardware_decl ( struct parse ,
jrefproto   
)
void convert_host_decl ( struct parse ,
jrefproto   
)
void convert_host_name ( struct parse ,
jrefproto   
)
void convert_host_statement ( struct parse ,
jrefproto   
)
void convert_ip_addr_or_hostname ( struct parse ,
jrefproto  ,
int   
)
void convert_lease_statement ( struct parse ,
jrefproto   
)
void convert_lease_time ( struct parse ,
jrefproto  ,
char *   
)
void convert_num ( struct parse ,
unsigned char *  ,
const char *  ,
int  ,
unsigned   
)

Definition at line 836 of file parse.c.

void convert_numeric_aggregate ( struct parse ,
jrefproto  ,
int  ,
int  ,
int  ,
int   
)
void convert_option_decl ( struct parse ,
jrefproto   
)
void convert_servername_decl ( struct parse ,
jrefproto   
)
void convert_shared_net_statement ( struct parse ,
jrefproto   
)
void convert_statement ( struct parse )
void convert_subnet_decl ( struct parse ,
jrefproto   
)
void convert_subnet_statement ( struct parse ,
jrefproto   
)
void copy_server_duid ( struct data_string ds,
const char *  file,
int  line 
)
struct binding* create_binding ( struct binding_scope **  ,
const char *   
)

Definition at line 4049 of file tree.c.

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 953 of file mdb6.c.

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 1715 of file mdb6.c.

void data_string_copy ( struct data_string ,
const struct data_string ,
const char *  ,
int   
)

Definition at line 1323 of file alloc.c.

void data_string_forget ( struct data_string ,
const char *  ,
int   
)

Definition at line 1339 of file alloc.c.

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.

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

Definition at line 56 of file tree.c.

int data_string_terminate ( struct data_string ,
const char *  ,
int   
)

Definition at line 1382 of file alloc.c.

void data_string_truncate ( struct data_string ,
int   
)

Definition at line 1352 of file alloc.c.

int data_subexpression_length ( int ,
struct expression  
)
int db_printable ( const unsigned char *  )
int db_printable_len ( const unsigned char *  ,
unsigned   
)
void db_startup ( int  )

Definition at line 1982 of file dhclient.c.

void ddns_cancel ( dhcp_ddns_cb_t ddns_cb,
const char *  file,
int  line 
)
dhcp_ddns_cb_t* ddns_cb_alloc ( const char *  file,
int  line 
)
void ddns_cb_forget_zone ( dhcp_ddns_cb_t ddns_cb)
void ddns_cb_free ( dhcp_ddns_cb_t ddns_cb,
const char *  file,
int  line 
)
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 
)
isc_result_t ddns_removals ( struct lease ,
struct iasubopt ,
struct dhcp_ddns_cb ,
isc_boolean_t   
)
isc_result_t ddns_remove_fwd ( struct data_string ,
struct iaddr  ,
struct data_string  
)
isc_result_t ddns_update_fwd ( struct data_string ,
struct iaddr  ,
struct data_string ,
unsigned  long,
unsigned  ,
unsigned   
)
int ddns_updates ( struct packet ,
struct lease ,
struct lease ,
struct iasubopt ,
struct iasubopt ,
struct option_state  
)
isc_result_t decline_lease6 ( struct ipv6_pool pool,
struct iasubopt lease 
)

Definition at line 1597 of file mdb6.c.

isc_result_t decline_leases ( struct ia_xx ia)

Definition at line 2189 of file mdb6.c.

ssize_t decode_ethernet_header ( struct interface_info ,
unsigned char *  ,
unsigned  ,
struct hardware  
)
ssize_t decode_hw_header ( struct interface_info ,
unsigned char *  ,
unsigned  ,
struct hardware  
)
ssize_t decode_tr_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   
)
isc_result_t delete_class ( struct class ,
int   
)

Definition at line 436 of file mdb.c.

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

Definition at line 3401 of file options.c.

isc_result_t delete_group ( struct group_object ,
int   
)

Definition at line 35 of file memory.c.

void delete_hashed_option ( struct universe ,
struct option_state ,
int   
)

Definition at line 2763 of file options.c.

isc_result_t delete_host ( struct host_decl ,
int   
)

Definition at line 468 of file mdb.c.

void delete_linked_option ( struct universe ,
struct option_state ,
int   
)

Definition at line 3792 of file options.c.

void delete_option ( struct universe ,
struct option_state ,
int   
)

Definition at line 2751 of file options.c.

void destroy_client_lease ( struct client_lease )

Definition at line 3782 of file dhclient.c.

void dhc6_lease_destroy ( struct dhc6_lease **  src,
const char *  file,
int  line 
)
isc_result_t dhcid_fromlease ( struct data_string ,
struct data_string  
)
void dhcid_tolease ( struct data_string ,
struct data_string  
)
int dhclient_interface_discovery_hook ( struct interface_info )

Definition at line 4953 of file dhclient.c.

int dhclient_interface_shutdown_hook ( struct interface_info )

Definition at line 4946 of file dhclient.c.

isc_result_t dhclient_interface_startup_hook ( struct interface_info )

Definition at line 4996 of file dhclient.c.

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

Definition at line 2020 of file dhclient.c.

void dhcp4o6_start ( void  )
isc_result_t dhcp_class_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 2252 of file omapi.c.

isc_result_t dhcp_class_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 1984 of file omapi.c.

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

Definition at line 1959 of file omapi.c.

isc_result_t dhcp_class_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 2246 of file omapi.c.

isc_result_t dhcp_class_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 2271 of file omapi.c.

isc_result_t dhcp_class_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 1948 of file omapi.c.

isc_result_t dhcp_class_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 2100 of file omapi.c.

isc_result_t dhcp_class_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 2146 of file omapi.c.

void dhcp_common_objects_setup ( void  )
isc_result_t dhcp_control_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 589 of file comapi.c.

isc_result_t dhcp_control_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 495 of file comapi.c.

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

Definition at line 470 of file comapi.c.

isc_result_t dhcp_control_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 558 of file comapi.c.

isc_result_t dhcp_control_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 596 of file comapi.c.

isc_result_t dhcp_control_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 435 of file comapi.c.

isc_result_t dhcp_control_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 505 of file comapi.c.

isc_result_t dhcp_control_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 525 of file comapi.c.

void dhcp_db_objects_setup ( void  )

Definition at line 57 of file omapi.c.

void dhcp_failover_ack_queue_remove ( dhcp_failover_state_t *  ,
struct lease  
)
void dhcp_failover_auto_partner_down ( void *  vs)
isc_result_t dhcp_failover_generate_update_queue ( dhcp_failover_state_t *  ,
int   
)
void dhcp_failover_keepalive ( void *  )
isc_result_t dhcp_failover_link_destroy ( omapi_object_t ,
const char *  ,
int   
)
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_initiate ( omapi_object_t )
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_signal ( omapi_object_t ,
const char *  ,
va_list   
)
void dhcp_failover_link_startup_timeout ( void *  )
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_destroy ( omapi_object_t ,
const char *  ,
int   
)
isc_result_t dhcp_failover_listener_get_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_value_t **   
)
void dhcp_failover_listener_restart ( void *  )
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_signal ( omapi_object_t ,
const char *  ,
va_list   
)
isc_result_t dhcp_failover_listener_stuff ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)
failover_option_t failover_option_t* dhcp_failover_make_option ( unsigned  ,
char *  ,
unsigned *  ,
unsigned  ,
  ... 
)
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 *  ,
  ... 
)
isc_result_t dhcp_failover_peer_state_changed ( dhcp_failover_state_t *  ,
failover_message_t *   
)
void dhcp_failover_pool_check ( struct pool )
void dhcp_failover_pool_rebalance ( void *  )
isc_result_t dhcp_failover_process_bind_ack ( dhcp_failover_state_t *  ,
failover_message_t *   
)
isc_result_t dhcp_failover_process_bind_update ( dhcp_failover_state_t *  ,
failover_message_t *   
)
isc_result_t dhcp_failover_process_update_done ( dhcp_failover_state_t *  ,
failover_message_t *   
)
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_put_message ( dhcp_failover_link_t *  ,
omapi_object_t ,
int  ,
u_int32_t  ,
  ... 
)
int dhcp_failover_queue_ack ( dhcp_failover_state_t *  ,
failover_message_t *  msg 
)
int dhcp_failover_queue_update ( struct lease ,
int   
)
void dhcp_failover_reconnect ( void *  )
void dhcp_failover_recover_done ( void *  )
isc_result_t dhcp_failover_register ( omapi_object_t )
const char* dhcp_failover_reject_reason_print ( int  )
void dhcp_failover_rescind_updates ( dhcp_failover_state_t *  )
int dhcp_failover_send_acks ( dhcp_failover_state_t *  )
isc_result_t dhcp_failover_send_bind_ack ( dhcp_failover_state_t *  ,
failover_message_t *  ,
int  ,
const char *   
)
isc_result_t dhcp_failover_send_bind_update ( dhcp_failover_state_t *  ,
struct lease  
)
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 *   
)
void dhcp_failover_send_contact ( void *  )
isc_result_t dhcp_failover_send_disconnect ( omapi_object_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_state ( dhcp_failover_state_t *  )
isc_result_t dhcp_failover_send_update_done ( dhcp_failover_state_t *  )
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_updates ( dhcp_failover_state_t *  )
isc_result_t dhcp_failover_set_service_state ( dhcp_failover_state_t *  state)
isc_result_t dhcp_failover_set_state ( dhcp_failover_state_t *  ,
enum  failover_state 
)
void dhcp_failover_startup ( void  )
void dhcp_failover_startup_timeout ( void *  )
isc_result_t dhcp_failover_state_create ( omapi_object_t **  ,
omapi_object_t  
)
isc_result_t dhcp_failover_state_destroy ( omapi_object_t ,
const char *  ,
int   
)
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_lookup ( omapi_object_t **  ,
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_state_name_print ( enum  failover_state)
int dhcp_failover_state_pool_check ( dhcp_failover_state_t *  )
isc_result_t dhcp_failover_state_remove ( omapi_object_t ,
omapi_object_t  
)
isc_result_t dhcp_failover_state_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)
isc_result_t dhcp_failover_state_signal ( omapi_object_t ,
const char *  ,
va_list   
)
isc_result_t dhcp_failover_state_stuff ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)
isc_result_t dhcp_failover_state_transition ( dhcp_failover_state_t *  ,
const char *   
)
void dhcp_failover_timeout ( void *  )
void dhcp_failover_toack_queue_timeout ( void *  )
int dhcp_failover_write_all_states ( void  )
isc_result_t dhcp_group_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 399 of file comapi.c.

isc_result_t dhcp_group_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 227 of file comapi.c.

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

Definition at line 202 of file comapi.c.

isc_result_t dhcp_group_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 334 of file comapi.c.

isc_result_t dhcp_group_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 415 of file comapi.c.

isc_result_t dhcp_group_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 128 of file comapi.c.

isc_result_t dhcp_group_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 257 of file comapi.c.

isc_result_t dhcp_group_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 302 of file comapi.c.

isc_result_t dhcp_host_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 1576 of file omapi.c.

isc_result_t dhcp_host_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 1190 of file omapi.c.

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

Definition at line 1121 of file omapi.c.

isc_result_t dhcp_host_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 1369 of file omapi.c.

isc_result_t dhcp_host_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 1592 of file omapi.c.

isc_result_t dhcp_host_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 926 of file omapi.c.

isc_result_t dhcp_host_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 1218 of file omapi.c.

isc_result_t dhcp_host_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 1266 of file omapi.c.

isc_result_t dhcp_interface_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 1389 of file discover.c.

isc_result_t dhcp_interface_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 1206 of file discover.c.

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

Definition at line 1198 of file discover.c.

isc_result_t dhcp_interface_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 1305 of file discover.c.

isc_result_t dhcp_interface_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 1405 of file discover.c.

isc_result_t dhcp_interface_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 1161 of file discover.c.

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

Definition at line 1235 of file discover.c.

isc_result_t dhcp_interface_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 1271 of file discover.c.

isc_result_t dhcp_io_shutdown ( omapi_object_t ,
void *   
)

Definition at line 1418 of file dhcpd.c.

isc_result_t dhcp_lease_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 914 of file omapi.c.

isc_result_t dhcp_lease_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 467 of file omapi.c.

isc_result_t dhcp_lease_free ( omapi_object_t ,
const char *  ,
int   
)
isc_result_t dhcp_lease_get ( omapi_object_t **  ,
const char *  ,
int   
)
isc_result_t dhcp_lease_get_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_value_t **   
)

Definition at line 391 of file omapi.c.

isc_result_t dhcp_lease_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 748 of file omapi.c.

isc_result_t dhcp_lease_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 920 of file omapi.c.

isc_result_t dhcp_lease_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 200 of file omapi.c.

isc_result_t dhcp_lease_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 541 of file omapi.c.

isc_result_t dhcp_lease_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 563 of file omapi.c.

int dhcp_option_ev_name ( char *  ,
size_t  ,
struct option  
)

Definition at line 4725 of file dhclient.c.

isc_result_t dhcp_pool_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 1777 of file omapi.c.

isc_result_t dhcp_pool_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 1654 of file omapi.c.

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

Definition at line 1632 of file omapi.c.

isc_result_t dhcp_pool_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 1765 of file omapi.c.

isc_result_t dhcp_pool_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 1783 of file omapi.c.

isc_result_t dhcp_pool_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 1607 of file omapi.c.

isc_result_t dhcp_pool_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 1697 of file omapi.c.

isc_result_t dhcp_pool_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 1719 of file omapi.c.

void dhcp_reply ( struct lease )

Definition at line 3742 of file dhcp.c.

isc_result_t dhcp_set_control_state ( control_object_state_t  oldstate,
control_object_state_t  newstate 
)

Definition at line 5145 of file dhclient.c.

isc_result_t dhcp_shared_network_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 897 of file comapi.c.

isc_result_t dhcp_shared_network_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 798 of file comapi.c.

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

Definition at line 774 of file comapi.c.

isc_result_t dhcp_shared_network_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 884 of file comapi.c.

isc_result_t dhcp_shared_network_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 903 of file comapi.c.

isc_result_t dhcp_shared_network_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 748 of file comapi.c.

isc_result_t dhcp_shared_network_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 836 of file comapi.c.

isc_result_t dhcp_shared_network_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 860 of file comapi.c.

isc_result_t dhcp_subclass_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 2360 of file omapi.c.

isc_result_t dhcp_subclass_destroy ( omapi_object_t ,
const char *  ,
int   
)
isc_result_t dhcp_subclass_get_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_value_t **   
)

Definition at line 2299 of file omapi.c.

isc_result_t dhcp_subclass_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 2351 of file omapi.c.

isc_result_t dhcp_subclass_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 2378 of file omapi.c.

isc_result_t dhcp_subclass_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 2287 of file omapi.c.

isc_result_t dhcp_subclass_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 2324 of file omapi.c.

isc_result_t dhcp_subclass_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 2334 of file omapi.c.

isc_result_t dhcp_subnet_create ( omapi_object_t **  ,
omapi_object_t  
)

Definition at line 736 of file comapi.c.

isc_result_t dhcp_subnet_destroy ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 653 of file comapi.c.

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

Definition at line 630 of file comapi.c.

isc_result_t dhcp_subnet_lookup ( omapi_object_t **  ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 723 of file comapi.c.

isc_result_t dhcp_subnet_remove ( omapi_object_t ,
omapi_object_t  
)

Definition at line 742 of file comapi.c.

isc_result_t dhcp_subnet_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)

Definition at line 604 of file comapi.c.

isc_result_t dhcp_subnet_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)

Definition at line 676 of file comapi.c.

isc_result_t dhcp_subnet_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)

Definition at line 699 of file comapi.c.

void dhcpack ( struct packet )

Definition at line 1655 of file dhclient.c.

int dhcpd_interface_setup_hook ( struct interface_info ip,
struct iaddr ia 
)

Definition at line 1356 of file dhcpd.c.

void dhcpdecline ( struct packet ,
int   
)

Definition at line 956 of file dhcp.c.

void dhcpdiscover ( struct packet ,
int   
)

Definition at line 322 of file dhcp.c.

void dhcpinform ( struct packet ,
int   
)

Definition at line 1095 of file dhcp.c.

void dhcpleasequery ( struct packet ,
int   
)

Definition at line 128 of file dhcpleasequery.c.

void dhcpnak ( struct packet )

Definition at line 2565 of file dhclient.c.

void dhcpoffer ( struct packet )

Definition at line 2307 of file dhclient.c.

void dhcprelease ( struct packet ,
int   
)

Definition at line 802 of file dhcp.c.

void dhcprequest ( struct packet ,
int  ,
struct lease  
)

Definition at line 480 of file dhcp.c.

void dhcpv4_client_assignments ( void  )

Definition at line 5534 of file dhclient.c.

void dhcpv6 ( struct packet )
void dhcpv6_client_assignments ( void  )
void dhcpv6_leasequery ( struct data_string ,
struct packet  
)
void discover_interfaces ( int  )

Definition at line 555 of file discover.c.

void dispatch ( void  )

Definition at line 109 of file dispatch.c.

int dns_host_entry_allocate ( struct dns_host_entry **  ,
const char *  ,
const char *  ,
int   
)

Definition at line 768 of file alloc.c.

int dns_host_entry_dereference ( struct dns_host_entry **  ,
const char *  ,
int   
)

Definition at line 813 of file alloc.c.

int dns_host_entry_reference ( struct dns_host_entry **  ,
struct dns_host_entry ,
const char *  ,
int   
)

Definition at line 785 of file alloc.c.

int dns_zone_allocate ( struct dns_zone **  ,
const char *  ,
int   
)

Definition at line 1134 of file alloc.c.

int dns_zone_dereference ( struct dns_zone **  ,
const char *  ,
int   
)

Definition at line 736 of file dns.c.

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

Definition at line 703 of file dns.c.

int dns_zone_reference ( struct dns_zone **  ,
struct dns_zone ,
const char *  ,
int   
)

Definition at line 1166 of file alloc.c.

void do_packet ( struct interface_info ,
struct dhcp_packet ,
unsigned  ,
unsigned  int,
struct iaddr  ,
struct hardware  
)

Definition at line 3888 of file options.c.

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

Definition at line 4868 of file dhclient.c.

void dump_packet ( struct packet )
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_raw ( const unsigned char *  ,
unsigned   
)
void dump_subnets ( void  )

Definition at line 2901 of file mdb.c.

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 1990 of file dhcp.c.

isc_result_t end_parse ( struct parse **  )

Definition at line 103 of file conflex.c.

isc_result_t enter_class ( struct class ,
int  ,
int   
)

Definition at line 72 of file mdb.c.

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

Definition at line 204 of file tree.c.

isc_result_t enter_dns_zone ( struct dns_zone )

Definition at line 678 of file dns.c.

isc_result_t enter_failover_peer ( dhcp_failover_state_t *  )
isc_result_t enter_host ( struct host_decl ,
int  ,
int   
)

Definition at line 221 of file mdb.c.

void enter_lease ( struct lease )

Definition at line 1090 of file mdb.c.

void enter_shared_network ( struct shared_network )

Definition at line 1033 of file mdb.c.

void enter_subnet ( struct subnet )

Definition at line 986 of file mdb.c.

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 5374 of file dhcp.c.

int evaluate_boolean_expression ( int ,
struct packet ,
struct lease ,
struct client_state ,
struct option_state ,
struct option_state ,
struct binding_scope **  ,
struct expression  
)

Definition at line 694 of file tree.c.

int evaluate_boolean_expression_result ( int ,
struct packet ,
struct lease ,
struct client_state ,
struct option_state ,
struct option_state ,
struct binding_scope **  ,
struct expression  
)

Definition at line 2780 of file tree.c.

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   
)

Definition at line 2733 of file tree.c.

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   
)

Definition at line 1126 of file tree.c.

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   
)

Definition at line 500 of file tree.c.

int evaluate_numeric_expression ( unsigned long *  ,
struct packet ,
struct lease ,
struct client_state ,
struct option_state ,
struct option_state ,
struct binding_scope **  ,
struct expression  
)

Definition at line 2229 of file tree.c.

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   
)

Definition at line 2699 of file tree.c.

int executable_statement_allocate ( struct executable_statement **  ,
const char *  ,
int   
)

Definition at line 958 of file alloc.c.

int executable_statement_dereference ( struct executable_statement **  ,
const char *  ,
int   
)

Definition at line 622 of file execute.c.

int executable_statement_foreach ( struct executable_statement ,
int(*)(struct executable_statement *, void *, int ,
void *  ,
int   
)
int executable_statement_reference ( struct executable_statement **  ,
struct executable_statement ,
const char *  ,
int   
)

Definition at line 972 of file alloc.c.

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  
)

Definition at line 34 of file execute.c.

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  
)

Definition at line 562 of file execute.c.

void expire_all_pools ( void  )

Definition at line 2803 of file mdb.c.

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

Definition at line 1563 of file mdb6.c.

int expr_valid_for_context ( struct expression ,
enum  expression_context 
)
int expression_allocate ( struct expression **  ,
const char *  ,
int   
)

Definition at line 426 of file alloc.c.

Definition at line 3206 of file tree.c.

void expression_dereference ( struct expression **  ,
const char *  ,
int   
)

Definition at line 2813 of file tree.c.

int expression_reference ( struct expression **  ,
struct expression ,
const char *  ,
int   
)

Definition at line 446 of file alloc.c.

void failover_print ( char *  ,
unsigned *  ,
unsigned  ,
const char *   
)
isc_result_t fallback_discard ( omapi_object_t )
struct binding* find_binding ( struct binding_scope ,
const char *   
)

Definition at line 3755 of file tree.c.

int find_bound_string ( struct data_string ,
struct binding_scope ,
const char *   
)

Definition at line 4103 of file tree.c.

isc_result_t find_cached_zone ( dhcp_ddns_cb_t ,
int   
)
isc_result_t find_class ( struct class **  ,
const char *  ,
const char *  ,
int   
)

Definition at line 1397 of file dhclient.c.

struct enumeration* find_enumeration ( const char *  ,
int   
)

Definition at line 43 of file parse.c.

struct enumeration_value* find_enumeration_value ( const char *  ,
int  ,
unsigned *  ,
const char *   
)

Definition at line 54 of file parse.c.

isc_result_t find_failover_peer ( dhcp_failover_state_t **  ,
const char *  ,
const char *  ,
int   
)
int find_grouped_subnet ( struct subnet **  ,
struct shared_network ,
struct iaddr  ,
const char *  ,
int   
)

Definition at line 931 of file mdb.c.

int find_host_for_network ( struct subnet **  ,
struct host_decl **  ,
struct iaddr ,
struct shared_network  
)

Definition at line 714 of file mdb.c.

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

Definition at line 2771 of file mdb6.c.

int find_hosts_by_haddr ( struct host_decl **  ,
int  ,
const unsigned char *  ,
unsigned  ,
const char *  ,
int   
)

Definition at line 610 of file mdb.c.

int find_hosts_by_option ( struct host_decl **  ,
struct packet ,
struct option_state ,
const char *  ,
int   
)

Definition at line 638 of file mdb.c.

int find_hosts_by_uid ( struct host_decl **  ,
const unsigned char *  ,
unsigned  ,
const char *  ,
int   
)

Definition at line 630 of file mdb.c.

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

Definition at line 2112 of file mdb6.c.

int find_lease ( struct lease **  ,
struct packet ,
struct shared_network ,
int ,
int ,
struct lease ,
const char *  ,
int   
)

Definition at line 4020 of file dhcp.c.

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

Definition at line 2035 of file mdb.c.

int find_lease_by_ip_addr ( struct lease **  ,
struct iaddr  ,
const char *  ,
int   
)

Definition at line 2020 of file mdb.c.

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

Definition at line 2027 of file mdb.c.

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  
)

Definition at line 1034 of file execute.c.

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

Definition at line 271 of file options.c.

int find_subnet ( struct subnet **  ,
struct iaddr  ,
const char *  ,
int   
)

Definition at line 1422 of file dhclient.c.

isc_result_t find_tsig_key ( ns_tsig_key **  ,
const char *  ,
struct dns_zone  
)
struct name_server* first_name_server ( void  )

Definition at line 170 of file resolv.c.

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

Definition at line 3982 of file dhclient.c.

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

Definition at line 1600 of file print.c.

int format_min_length ( const char *  ,
struct option_cache  
)
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 3437 of file options.c.

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(*)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *)  func 
)

Definition at line 3415 of file options.c.

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

Definition at line 3537 of file options.c.

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  
)

Definition at line 3262 of file options.c.

int fqdn_universe_decode ( struct option_state ,
const unsigned char *  ,
unsigned  ,
struct universe  
)

Definition at line 345 of file options.c.

void free_binding_value ( struct binding_value ,
const char *  ,
int   
)

Definition at line 548 of file alloc.c.

int free_bindings ( struct binding_scope ,
const char *  ,
int   
)

Definition at line 3770 of file tree.c.

void free_client_lease ( struct client_lease ,
const char *  ,
int   
)

Definition at line 369 of file alloc.c.

void free_dhcp_packet ( struct dhcp_packet ,
const char *  ,
int   
)

Definition at line 353 of file alloc.c.

void free_domain_search_list ( struct domain_search_list ,
const char *  ,
int   
)

Definition at line 337 of file alloc.c.

void free_expression ( struct expression ,
const char *  ,
int   
)

Definition at line 474 of file alloc.c.

isc_result_t free_iaddrcidrnetlist ( struct iaddrcidrnetlist **  result)

Definition at line 503 of file inet.c.

void free_lease_state ( struct lease_state ,
const char *  ,
int   
)

Definition at line 198 of file salloc.c.

void free_name_server ( struct name_server ,
const char *  ,
int   
)

Definition at line 292 of file alloc.c.

void free_pair ( pair  ,
const char *  ,
int   
)

Definition at line 400 of file alloc.c.

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

Definition at line 245 of file salloc.c.

void free_protocol ( struct protocol ,
const char *  ,
int   
)

Definition at line 345 of file alloc.c.

void free_universe ( struct universe ,
const char *  ,
int   
)

Definition at line 329 of file alloc.c.

int fundef_allocate ( struct fundef **  ,
const char *  ,
int   
)

Definition at line 572 of file alloc.c.

int fundef_dereference ( struct fundef **  ,
const char *  ,
int   
)

Definition at line 3829 of file tree.c.

int fundef_reference ( struct fundef **  ,
struct fundef ,
const char *  ,
int   
)

Definition at line 586 of file alloc.c.

isc_result_t generate_new_server_duid ( void  )
isc_result_t get_client_id ( struct packet ,
struct data_string  
)
int get_dhcid ( dhcp_ddns_cb_t ,
int  ,
const u_int8_t *  ,
unsigned   
)
void get_hw_addr ( struct interface_info info)
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   
)

Definition at line 2168 of file options.c.

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   
)

Definition at line 2203 of file options.c.

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

Definition at line 5288 of file dhcp.c.

void go_daemon ( void  )

Definition at line 4765 of file dhclient.c.

isc_result_t got_one ( omapi_object_t )

Definition at line 1029 of file discover.c.

isc_result_t got_one_v6 ( omapi_object_t )
int group_allocate ( struct group **  ,
const char *  ,
int   
)

Definition at line 145 of file alloc.c.

int group_dereference ( struct group **  ,
const char *  ,
int   
)

Definition at line 205 of file alloc.c.

int group_reference ( struct group **  ,
struct group ,
const char *  ,
int   
)

Definition at line 177 of file alloc.c.

int group_writer ( struct group_object )

Definition at line 1247 of file db.c.

void hash_dump ( struct hash_table )

Definition at line 344 of file print.c.

HASH_FUNCTIONS_DECL ( option_name  ,
const char *  ,
struct option  ,
option_name_hash_t   
)
option_code_hash_t HASH_FUNCTIONS_DECL ( lease_ip  ,
const unsigned char *  ,
struct lease  ,
lease_ip_hash_t   
)
HASH_FUNCTIONS_DECL ( iasubopt  ,
struct in6_addr *  ,
struct iasubopt  ,
iasubopt_hash_t   
)
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  
)

Definition at line 3094 of file options.c.

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 hashed_option_state_dereference ( struct universe ,
struct option_state ,
const char *  ,
int   
)

Definition at line 2848 of file options.c.

u_int32_t host_addr ( struct iaddr  ,
struct iaddr   
)

Definition at line 138 of file inet.c.

void hw_hash_add ( struct lease )

Definition at line 2219 of file mdb.c.

void hw_hash_delete ( struct lease )

Definition at line 2299 of file mdb.c.

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

Definition at line 438 of file mdb6.c.

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 338 of file mdb6.c.

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

Definition at line 402 of file mdb6.c.

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

Definition at line 517 of file mdb6.c.

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 310 of file mdb6.c.

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

Definition at line 376 of file mdb6.c.

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

Definition at line 503 of file mdb6.c.

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

Definition at line 475 of file mdb6.c.

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

Definition at line 260 of file mdb6.c.

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

Definition at line 233 of file mdb6.c.

isc_result_t icmp_echoreply ( omapi_object_t )

Definition at line 205 of file icmp.c.

int icmp_echorequest ( struct iaddr )

Definition at line 129 of file icmp.c.

int icmp_readsocket ( omapi_object_t )

Definition at line 120 of file icmp.c.

void icmp_startup ( int  ,
void(*)(struct iaddr, u_int8_t *, int  
)
void if_deregister6 ( struct interface_info info)
void if_deregister_receive ( struct interface_info )
void if_deregister_send ( struct interface_info )
int if_readsocket ( omapi_object_t )

Definition at line 984 of file discover.c.

void if_register6 ( struct interface_info info,
int  do_multicast 
)
void if_register_fallback ( struct interface_info )
void if_register_linklocal6 ( struct interface_info info)
int if_register_lpf ( struct interface_info )
void if_register_receive ( struct interface_info )
void if_register_send ( struct interface_info )
int if_register_socket ( struct interface_info ,
int  ,
int ,
struct in6_addr *   
)
void if_reinitialize_fallback ( struct interface_info )
void if_reinitialize_receive ( struct interface_info )
void if_reinitialize_send ( struct interface_info )
void indent ( int  )
void indent_spaces ( FILE *  ,
int   
)

Definition at line 1288 of file print.c.

void initialize_common_option_spaces ( void  )

Definition at line 1049 of file tables.c.

void initialize_server_option_spaces ( void  )

Definition at line 437 of file stables.c.

isc_result_t interface_destroy ( omapi_object_t ,
const char *  ,
int   
)
isc_result_t interface_get_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_value_t **   
)
isc_result_t interface_initialize ( omapi_object_t ,
const char *  ,
int   
)

Definition at line 121 of file discover.c.

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

Definition at line 1049 of file clparse.c.

isc_result_t interface_set_value ( omapi_object_t ,
omapi_object_t ,
omapi_data_string_t ,
omapi_typed_data_t  
)
isc_result_t interface_setup ( void  )

Definition at line 83 of file discover.c.

isc_result_t interface_signal_handler ( omapi_object_t ,
const char *  ,
va_list   
)
void interface_snorf ( struct interface_info ,
int   
)

Definition at line 1505 of file discover.c.

void interface_stash ( struct interface_info )

Definition at line 1467 of file discover.c.

isc_result_t interface_stuff_values ( omapi_object_t ,
omapi_object_t ,
omapi_object_t  
)
void interface_trace_setup ( void  )
struct iaddr ip_addr ( struct iaddr  ,
struct iaddr  ,
u_int32_t   
)

Definition at line 63 of file inet.c.

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

Definition at line 2094 of file mdb6.c.

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 2391 of file mdb6.c.

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 2474 of file mdb6.c.

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 2434 of file mdb6.c.

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 635 of file mdb6.c.

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 772 of file mdb6.c.

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 701 of file mdb6.c.

int is_boolean_expression ( struct expression )

Definition at line 3031 of file tree.c.

isc_boolean_t is_cidr_mask_valid ( const struct iaddr addr,
int  bits 
)

Definition at line 303 of file inet.c.

int is_compound_expression ( struct expression )

Definition at line 3097 of file tree.c.

int is_data_expression ( struct expression )

Definition at line 3048 of file tree.c.

int is_dns_expression ( struct expression )
int is_numeric_expression ( struct expression )

Definition at line 3078 of file tree.c.

void lc_add_sorted_lease ( struct leasechain lc,
struct lease lp 
)
void lc_delete_all ( struct leasechain lc)
struct lease* lc_get_first_lease ( struct leasechain lc)
struct lease* lc_get_next ( struct leasechain lc,
struct lease lp 
)
void lc_init_growth ( struct leasechain lc,
size_t  growth 
)
int lc_not_empty ( struct leasechain lc)
void lc_unlink_lease ( struct leasechain lc,
struct lease lp 
)
isc_boolean_t lease6_exists ( const struct ipv6_pool pool,
const struct in6_addr *  addr 
)

Definition at line 1344 of file mdb6.c.

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 1372 of file mdb6.c.

int lease_copy ( struct lease **  ,
struct lease ,
const char *  ,
int   
)

Definition at line 1659 of file mdb.c.

int lease_enqueue ( struct lease )

Definition at line 2647 of file mdb.c.

isc_result_t lease_file_subparse ( struct parse )

Definition at line 269 of file confpars.c.

isc_result_t lease_instantiate ( const void *  ,
unsigned  ,
void *   
)

Definition at line 2733 of file mdb.c.

int lease_mine_to_reallocate ( struct lease )
void lease_ping_timeout ( void *  )

Definition at line 1333 of file dhcpd.c.

void lease_pinged ( struct iaddr  ,
u_int8_t *  ,
int   
)

Definition at line 1284 of file dhcpd.c.

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_space_encapsulate ( struct data_string ,
struct packet ,
struct lease ,
struct client_state ,
struct option_state ,
struct option_state ,
struct binding_scope **  ,
struct universe  
)

Definition at line 3756 of file options.c.

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_state_dereference ( struct universe ,
struct option_state ,
const char *  ,
int   
)

Definition at line 3846 of file options.c.

int load_balance_mine ( struct packet ,
dhcp_failover_state_t *   
)
int locate_network ( struct packet )

Definition at line 5163 of file dhcp.c.

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

Definition at line 3380 of file options.c.

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

Definition at line 2363 of file options.c.

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

Definition at line 3821 of file options.c.

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

Definition at line 2348 of file options.c.

int main ( int  ,
char **   
)

Definition at line 205 of file dhclient.c.

void make_binding_state_transition ( struct lease )

Definition at line 1481 of file mdb.c.

void make_client_config ( struct client_state ,
struct client_config  
)

Definition at line 1112 of file clparse.c.

void make_client_options ( struct client_state ,
struct client_lease ,
u_int8_t *  ,
struct option_cache ,
struct iaddr ,
struct option **  ,
struct option_state **   
)

Definition at line 3360 of file dhclient.c.

void make_client_state ( struct client_state **  )

Definition at line 1103 of file clparse.c.

int make_concat ( struct expression **  ,
struct expression ,
struct expression  
)

Definition at line 268 of file tree.c.

int make_const_data ( struct expression **  ,
const unsigned char *  ,
unsigned  ,
int  ,
int  ,
const char *  ,
int   
)

Definition at line 219 of file tree.c.

int make_const_int ( struct expression **  ,
unsigned  long 
)

Definition at line 254 of file tree.c.

int make_const_option_cache ( struct option_cache **  ,
struct buffer **  ,
u_int8_t *  ,
unsigned  ,
struct option ,
const char *  ,
int   
)

Definition at line 149 of file tree.c.

void make_decline ( struct client_state ,
struct client_lease  
)

Definition at line 3665 of file dhclient.c.

void make_discover ( struct client_state ,
struct client_lease  
)

Definition at line 3510 of file dhclient.c.

int make_encapsulation ( struct expression **  ,
struct data_string  
)

Definition at line 298 of file tree.c.

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

Definition at line 188 of file tree.c.

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

Definition at line 377 of file tree.c.

int make_limit ( struct expression **  ,
struct expression ,
int   
)

Definition at line 331 of file tree.c.

void make_release ( struct client_state ,
struct client_lease  
)

Definition at line 3725 of file dhclient.c.

void make_request ( struct client_state ,
struct client_lease  
)

Definition at line 3575 of file dhclient.c.

int make_substring ( struct expression **  ,
struct expression ,
struct expression ,
struct expression  
)

Definition at line 313 of file tree.c.

void mark_hosts_unavailable ( void  )

Definition at line 2292 of file mdb6.c.

void mark_interfaces_unavailable ( void  )

Definition at line 2347 of file mdb6.c.

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

Definition at line 2342 of file mdb6.c.

void maybe_setup_fallback ( void  )
int mockup_lease ( struct lease **  ,
struct packet ,
struct shared_network ,
struct host_decl  
)

Definition at line 4772 of file dhcp.c.

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 1753 of file dhcp.c.

void new_address_range ( struct parse ,
struct iaddr  ,
struct iaddr  ,
struct subnet ,
struct pool ,
struct lease **   
)

Definition at line 760 of file mdb.c.

struct client_lease* new_client_lease ( const char *  ,
int   
)
struct dhcp_packet* new_dhcp_packet ( const char *  ,
int   
)
struct domain_search_list* new_domain_search_list ( const char *  ,
int   
)
int new_lease_file ( void  )

Definition at line 1108 of file db.c.

struct lease_state* new_lease_state ( const char *  ,
int   
)
struct lease* new_leases ( unsigned  ,
const char *  ,
int   
)
struct name_server* new_name_server ( const char *  ,
int   
)
struct option* new_option ( const char *  ,
const char *  ,
int   
)
pair new_pair ( const char *  ,
int   
)
isc_result_t new_parse ( struct parse **  ,
int  ,
char *  ,
unsigned  ,
const char *  ,
int   
)

Definition at line 41 of file conflex.c.

struct permit* new_permit ( const char *  ,
int   
)
struct protocol* new_protocol ( const char *  ,
int   
)
void new_shared_network_interface ( struct parse ,
struct shared_network ,
const char *   
)

Definition at line 1044 of file mdb.c.

struct universe* new_universe ( const char *  ,
int   
)
struct option_cache* next_hashed_option ( struct universe ,
struct option_state ,
struct option_cache  
)
enum dhcp_token next_raw_token ( const char **  rval,
unsigned *  rlen,
struct parse cfile 
)

Definition at line 380 of file conflex.c.

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

Definition at line 369 of file conflex.c.

binding_state_t normal_binding_state_transition_check ( struct lease ,
dhcp_failover_state_t *  ,
binding_state_t  ,
u_int32_t   
)
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  
)

Definition at line 3137 of file options.c.

OMAPI_OBJECT_ALLOC_DECL ( shared_network  ,
struct shared_network  ,
dhcp_type_shared_network   
)
OMAPI_OBJECT_ALLOC_DECL ( interface  ,
struct interface_info  ,
dhcp_type_interface   
)
OMAPI_OBJECT_ALLOC_DECL ( dhcp_failover_state  ,
dhcp_failover_state_t  ,
dhcp_type_failover_state   
)
dhcp_type_failover_listener OMAPI_OBJECT_ALLOC_DECL ( dhcp_failover_link  ,
dhcp_failover_link_t  ,
dhcp_type_failover_link   
) const
enum expression_context op_context ( enum  expr_op)

Definition at line 3217 of file tree.c.

int op_precedence ( enum  expr_op,
enum  expr_op 
)

Definition at line 3200 of file tree.c.

int option_cache ( struct option_cache **  ,
struct data_string ,
struct expression ,
struct option ,
const char *  ,
int   
)

Definition at line 363 of file tree.c.

int option_cache_allocate ( struct option_cache **  ,
const char *  ,
int   
)

Definition at line 630 of file alloc.c.

int option_cache_dereference ( struct option_cache **  ,
const char *  ,
int   
)

Definition at line 2798 of file options.c.

int option_cache_reference ( struct option_cache **  ,
struct option_cache ,
const char *  ,
int   
)

Definition at line 651 of file alloc.c.

dhcp_type_control int option_chain_head_allocate ( struct option_chain_head **  ,
const char *  ,
int   
)

Definition at line 35 of file alloc.c.

int option_chain_head_dereference ( struct option_chain_head **  ,
const char *  ,
int   
)

Definition at line 95 of file alloc.c.

int option_chain_head_reference ( struct option_chain_head **  ,
struct option_chain_head ,
const char *  ,
int   
)

Definition at line 67 of file alloc.c.

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

Definition at line 1002 of file tables.c.

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

Definition at line 980 of file tables.c.

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  
)

Definition at line 3006 of file options.c.

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 *)   
)
int option_state_allocate ( struct option_state **  ,
const char *  ,
int   
)

Definition at line 846 of file alloc.c.

int option_state_dereference ( struct option_state **  ,
const char *  ,
int   
)

Definition at line 911 of file alloc.c.

int option_state_reference ( struct option_state **  ,
struct option_state ,
const char *  ,
int   
)

Definition at line 883 of file alloc.c.

int packet6_len_okay ( const char *  ,
int   
)

Definition at line 3978 of file options.c.

int packet_allocate ( struct packet **  ,
const char *  ,
int   
)

Definition at line 1015 of file alloc.c.

int packet_dereference ( struct packet **  ,
const char *  ,
int   
)

Definition at line 1081 of file alloc.c.

int packet_reference ( struct packet **  ,
struct packet ,
const char *  ,
int   
)

Definition at line 1053 of file alloc.c.

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

Definition at line 2442 of file dhclient.c.

void parse_address_range ( struct parse ,
struct group ,
int  ,
struct pool ,
struct lease **   
)

Definition at line 3752 of file confpars.c.

void parse_address_range6 ( struct parse cfile,
struct group group,
struct ipv6_pond  
)
int parse_agent_information_option ( struct packet ,
int  ,
u_int8_t *   
)

Definition at line 5048 of file dhclient.c.

int parse_allow_deny ( struct option_cache **  ,
struct parse ,
int   
)

Definition at line 2347 of file clparse.c.

int parse_auth_key ( struct data_string ,
struct parse  
)
int parse_base64 ( struct data_string ,
struct parse  
)

Definition at line 1895 of file parse.c.

int parse_boolean ( struct parse )

Definition at line 3494 of file parse.c.

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

Definition at line 3471 of file parse.c.

uint32_t parse_byte_order_uint32 ( const void *  source)
int parse_case_statement ( struct executable_statement **  ,
struct parse ,
int ,
enum  expression_context 
)

Definition at line 3288 of file parse.c.

int parse_class_declaration ( struct class **  ,
struct parse ,
struct group ,
int   
)

Definition at line 2207 of file confpars.c.

void parse_client_lease_declaration ( struct parse ,
struct client_lease ,
struct interface_info **  ,
struct client_state **   
)

Definition at line 1266 of file clparse.c.

void parse_client_lease_statement ( struct parse ,
int   
)

Definition at line 1137 of file clparse.c.

void parse_client_statement ( struct parse ,
struct interface_info ,
struct client_config  
)

Definition at line 435 of file clparse.c.

int parse_cshl ( struct data_string ,
struct parse  
)

Definition at line 2036 of file parse.c.

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

Definition at line 3538 of file parse.c.

TIME parse_date ( struct parse )

Definition at line 1184 of file parse.c.

TIME parse_date_core ( struct parse )

Definition at line 974 of file parse.c.

int parse_destination_descriptor ( struct parse ,
struct iaddr  
)

Definition at line 350 of file parse.c.

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

Definition at line 5670 of file parse.c.

int parse_encapsulated_suboptions ( struct option_state ,
struct option ,
const unsigned char *  ,
unsigned  ,
struct universe ,
const char *   
)

Definition at line 316 of file options.c.

int parse_executable_statement ( struct executable_statement **  ,
struct parse ,
int ,
enum  expression_context 
)

Definition at line 2129 of file parse.c.

int parse_executable_statements ( struct executable_statement **  ,
struct parse ,
int ,
enum  expression_context 
)

Definition at line 2113 of file parse.c.

int parse_expression ( struct expression **  ,
struct parse ,
int ,
enum  expression_context,
struct expression **  ,
enum  expr_op 
)

Definition at line 4497 of file parse.c.

void parse_failover_peer ( struct parse ,
struct group ,
int   
)
void parse_failover_state ( struct parse ,
enum failover_state ,
TIME  
)
void parse_failover_state_declaration ( struct parse ,
dhcp_failover_state_t *   
)
int parse_fixed_addr_param ( struct option_cache **  ,
struct parse ,
enum  dhcp_token 
)

Definition at line 3044 of file confpars.c.

void parse_fixed_prefix6 ( struct parse cfile,
struct host_decl host_decl 
)
void parse_group_declaration ( struct parse ,
struct group  
)

Definition at line 2951 of file confpars.c.

void parse_hardware_param ( struct parse ,
struct hardware  
)

Definition at line 611 of file parse.c.

void parse_host_declaration ( struct parse ,
struct group  
)

Definition at line 1943 of file confpars.c.

char* parse_host_name ( struct parse )

Definition at line 192 of file parse.c.

void parse_ia_na_declaration ( struct parse )

Definition at line 4717 of file confpars.c.

void parse_ia_pd_declaration ( struct parse )

Definition at line 5589 of file confpars.c.

void parse_ia_ta_declaration ( struct parse )

Definition at line 5153 of file confpars.c.

int parse_if_statement ( struct executable_statement **  ,
struct parse ,
int  
)

Definition at line 3335 of file parse.c.

void parse_interface_declaration ( struct parse ,
struct client_config ,
char *   
)

Definition at line 986 of file clparse.c.

int parse_ip6_addr ( struct parse ,
struct iaddr  
)

Definition at line 401 of file parse.c.

int parse_ip6_addr_expr ( struct expression **  ,
struct parse  
)

Definition at line 461 of file parse.c.

int parse_ip6_prefix ( struct parse ,
struct iaddr ,
u_int8_t *   
)

Definition at line 475 of file parse.c.

int parse_ip_addr ( struct parse ,
struct iaddr  
)

Definition at line 332 of file parse.c.

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

Definition at line 264 of file parse.c.

int parse_ip_addr_with_subnet ( struct parse ,
struct iaddrmatch  
)

Definition at line 518 of file parse.c.

int parse_key ( struct parse )

Definition at line 2992 of file parse.c.

int parse_lbrace ( struct parse )

Definition at line 1925 of file confpars.c.

int parse_lease_declaration ( struct lease **  ,
struct parse  
)

Definition at line 3115 of file confpars.c.

void parse_lease_time ( struct parse ,
TIME  
)

Definition at line 686 of file parse.c.

int parse_non_binary ( struct expression **  ,
struct parse ,
int ,
enum  expression_context 
)

Definition at line 3588 of file parse.c.

unsigned char* parse_numeric_aggregate ( struct parse ,
unsigned char *  ,
unsigned *  ,
int  ,
int  ,
unsigned   
)

Definition at line 730 of file parse.c.

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

Definition at line 3565 of file parse.c.

int parse_on_statement ( struct executable_statement **  ,
struct parse ,
int  
)

Definition at line 3140 of file parse.c.

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

Definition at line 117 of file options.c.

int parse_option_code_definition ( struct parse ,
struct option  
)

Definition at line 1568 of file parse.c.

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

Definition at line 4808 of file parse.c.

int parse_option_decl ( struct option_cache **  ,
struct parse  
)

Definition at line 5263 of file parse.c.

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

Definition at line 912 of file clparse.c.

isc_result_t parse_option_name ( struct parse ,
int  ,
int ,
struct option **   
)

Definition at line 1204 of file parse.c.

void parse_option_space_decl ( struct parse )

Definition at line 1345 of file parse.c.

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

Definition at line 4915 of file parse.c.

int parse_option_token ( struct expression **  ,
struct parse ,
const char **  ,
struct expression ,
int  ,
int   
)

Definition at line 4974 of file parse.c.

int parse_options ( struct packet )

Definition at line 47 of file options.c.

void parse_pool6_statement ( struct parse ,
struct group ,
int   
)
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 1716 of file confpars.c.

void parse_prefix6 ( struct parse cfile,
struct group group,
struct ipv6_pond  
)
void parse_reject_statement ( struct parse ,
struct client_config  
)

Definition at line 2283 of file clparse.c.

int parse_semi ( struct parse )

Definition at line 135 of file parse.c.

void parse_server_duid ( struct parse cfile)
void parse_server_duid_conf ( struct parse cfile)
void parse_shared_net_declaration ( struct parse ,
struct group  
)

Definition at line 2585 of file confpars.c.

int parse_statement ( struct parse ,
struct group ,
int  ,
struct host_decl ,
int   
)

Definition at line 356 of file confpars.c.

int parse_string ( struct parse ,
char **  ,
unsigned *   
)

Definition at line 152 of file parse.c.

void parse_string_list ( struct parse ,
struct string_list **  ,
int   
)

Definition at line 2233 of file clparse.c.

void parse_subnet6_declaration ( struct parse ,
struct shared_network  
)

Definition at line 2830 of file confpars.c.

void parse_subnet_declaration ( struct parse ,
struct shared_network  
)

Definition at line 2742 of file confpars.c.

int parse_switch_statement ( struct executable_statement **  ,
struct parse ,
int  
)

Definition at line 3220 of file parse.c.

void parse_trace_setup ( void  )
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 4404 of file options.c.

int parse_warn ( struct parse ,
const char *  ,
  ... 
)
int parse_X ( struct parse ,
u_int8_t *  ,
unsigned   
)

Definition at line 5566 of file parse.c.

int parse_zone ( struct dns_zone ,
struct parse  
)

Definition at line 2812 of file parse.c.

const char* pdestdesc ( struct iaddr  )

Definition at line 557 of file inet.c.

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

Definition at line 454 of file conflex.c.

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

Definition at line 443 of file conflex.c.

int peer_wants_lease ( struct lease )
int permit_list_match ( struct permit ,
struct permit  
)

Definition at line 1672 of file confpars.c.

int permitted ( struct packet ,
struct permit  
)

Definition at line 4978 of file dhcp.c.

const char* piaddr ( struct iaddr  )

Definition at line 579 of file inet.c.

char* piaddrcidr ( const struct iaddr ,
unsigned  int 
)

Definition at line 637 of file inet.c.

char* piaddrmask ( struct iaddr ,
struct iaddr  
)

Definition at line 606 of file inet.c.

void pool_timer ( void *  )

Definition at line 1882 of file mdb.c.

void postconf_initialization ( int  )

Definition at line 957 of file dhcpd.c.

void postdb_startup ( void  )

Definition at line 1266 of file dhcpd.c.

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

Definition at line 1804 of file mdb6.c.

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

Definition at line 4130 of file options.c.

const char* pretty_print_option ( struct option ,
const unsigned char *  ,
unsigned  ,
int  ,
int   
)

Definition at line 1676 of file options.c.

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

Definition at line 121 of file print.c.

char* print_dec_1 ( unsigned  long)

Definition at line 512 of file print.c.

char* print_dec_2 ( unsigned  long)

Definition at line 520 of file print.c.

void print_dns_status ( int  ,
struct dhcp_ddns_cb ,
isc_result_t   
)
char* print_dotted_quads ( unsigned  ,
const u_int8_t *   
)

Definition at line 481 of file print.c.

void print_expression ( const char *  ,
struct expression  
)
char* print_hex ( unsigned  ,
const u_int8_t *  ,
unsigned  ,
unsigned   
)

Definition at line 444 of file print.c.

void print_hex_only ( unsigned  ,
const u_int8_t *  ,
unsigned  ,
char *   
)

Definition at line 380 of file print.c.

void print_hex_or_string ( unsigned  ,
const u_int8_t *  ,
unsigned  ,
char *   
)

Definition at line 407 of file print.c.

char* print_hw_addr ( const int  ,
const int  ,
const unsigned char *   
)
void print_lease ( struct lease )

Definition at line 194 of file print.c.

const char* print_time ( TIME  )

Definition at line 1485 of file print.c.

struct timeval* process_outstanding_timeouts ( struct timeval *  )

Definition at line 46 of file dispatch.c.

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

Definition at line 71 of file print.c.

char* quotify_string ( const char *  ,
const char *  ,
int   
)

Definition at line 33 of file print.c.

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

Definition at line 360 of file inet.c.

isc_result_t read_client_conf ( void  )

Definition at line 55 of file clparse.c.

int read_client_conf_file ( const char *  ,
struct interface_info ,
struct client_config  
)

Definition at line 291 of file clparse.c.

void read_client_duid ( void  )

Definition at line 330 of file clparse.c.

void read_client_leases ( void  )

Definition at line 366 of file clparse.c.

isc_result_t read_conf_file ( const char *  ,
struct group ,
int  ,
int   
)

Definition at line 79 of file confpars.c.

void read_resolv_conf ( TIME  )

Definition at line 36 of file resolv.c.

isc_result_t readconf ( void  )

Definition at line 64 of file confpars.c.

ssize_t receive_packet ( struct interface_info ,
unsigned char *  ,
size_t  ,
struct sockaddr_in *  ,
struct hardware  
)
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 register_eventhandler ( struct eventqueue **  ,
void(*)(void *)  handler 
)
void reinitialize_interfaces ( void  )

Definition at line 1014 of file discover.c.

void release_lease ( struct lease ,
struct packet  
)

Definition at line 1733 of file mdb.c.

isc_result_t release_lease6 ( struct ipv6_pool pool,
struct iasubopt lease 
)

Definition at line 1622 of file mdb6.c.

isc_result_t release_leases ( struct ia_xx ia)

Definition at line 2181 of file mdb6.c.

void relinquish_lease_hunks ( void  )
void relinquish_timeouts ( void  )
void remove_all_if_routes ( struct interface_info )
void remove_if_route ( struct interface_info ,
struct in_addr   
)
void remove_routes ( struct in_addr  )
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 1444 of file mdb6.c.

isc_result_t renew_leases ( struct ia_xx ia)

Definition at line 2173 of file mdb6.c.

void report_jumbo_ranges ( )

Definition at line 2510 of file mdb6.c.

void repudiate_zone ( struct dns_zone **  )
isc_result_t restore_parse_state ( struct parse cfile)

Definition at line 159 of file conflex.c.

void rewrite_client_leases ( void  )

Definition at line 3796 of file dhclient.c.

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

Definition at line 3391 of file options.c.

void save_hashed_option ( struct universe ,
struct option_state ,
struct option_cache ,
isc_boolean_t  appendp 
)

Definition at line 2684 of file options.c.

void save_linked_option ( struct universe ,
struct option_state ,
struct option_cache ,
isc_boolean_t  appendp 
)

Definition at line 3712 of file options.c.

void save_option ( struct universe ,
struct option_state ,
struct option_cache  
)

Definition at line 2663 of file options.c.

int save_option_buffer ( struct universe ,
struct option_state ,
struct buffer ,
unsigned char *  ,
unsigned  ,
unsigned  ,
int   
)

Definition at line 2390 of file options.c.

isc_result_t save_parse_state ( struct parse cfile)

Definition at line 128 of file conflex.c.

void schedule_all_ipv6_lease_timeouts ( )

Definition at line 2029 of file mdb6.c.

void schedule_lease_timeout ( struct ipv6_pool pool)

Definition at line 1986 of file mdb6.c.

int script_go ( struct client_state )

Definition at line 4611 of file dhclient.c.

void script_init ( struct client_state ,
const char *  ,
struct string_list  
)

Definition at line 4400 of file dhclient.c.

void script_write_params ( struct client_state ,
const char *  ,
struct client_lease  
)

Definition at line 4472 of file dhclient.c.

void script_write_requested ( struct client_state )

Definition at line 4592 of file dhclient.c.

void send_decline ( void *  )

Definition at line 3083 of file dhclient.c.

void send_discover ( void *  )

Definition at line 2644 of file dhclient.c.

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_packet ( struct interface_info ,
struct packet ,
struct dhcp_packet ,
size_t  ,
struct in_addr  ,
struct sockaddr_in *  ,
struct hardware  
)
ssize_t send_packet6 ( struct interface_info ,
const unsigned char *  ,
size_t  ,
struct sockaddr_in6 *   
)
void send_release ( void *  )

Definition at line 3122 of file dhclient.c.

void send_request ( void *  )

Definition at line 2884 of file dhclient.c.

isc_boolean_t server_duid_isset ( void  )
void set_broadcast_addr ( struct interface_info ,
struct in_addr   
)
void set_ip_address ( struct interface_info ,
struct in_addr   
)
void set_multicast_hop_limit ( struct interface_info info,
int  hop_limit 
)
void set_netmask ( struct interface_info ,
struct in_addr   
)
void set_option ( struct universe ,
struct option_state ,
struct option_cache ,
enum  statement_op 
)

Definition at line 2248 of file options.c.

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)
void set_time ( TIME  )

Definition at line 36 of file dispatch.c.

int setup_fallback ( struct interface_info **  ,
const char *  ,
int   
)

Definition at line 995 of file discover.c.

void skip_to_rbrace ( struct parse ,
int   
)

Definition at line 94 of file parse.c.

void skip_to_semi ( struct parse )

Definition at line 77 of file parse.c.

void start_confirm6 ( struct client_state client)
void start_info_request6 ( struct client_state client)
void start_init6 ( struct client_state client)
void start_release6 ( struct client_state client)
void start_selecting6 ( struct client_state client)
void state_bound ( void *  )

Definition at line 1899 of file dhclient.c.

void state_init ( void *  )

Definition at line 1533 of file dhclient.c.

void state_panic ( void *  )

Definition at line 2774 of file dhclient.c.

void state_reboot ( void *  )

Definition at line 1480 of file dhclient.c.

void state_requesting ( void *  )
void state_selecting ( void *  )

Definition at line 1570 of file dhclient.c.

void state_stop ( void *  )

Definition at line 1941 of file dhclient.c.

void static_lease_dereference ( struct lease ,
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  
)

Definition at line 2936 of file options.c.

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 1123 of file options.c.

int store_options6 ( char *  ,
int  ,
struct option_state ,
struct packet ,
const int ,
struct data_string  
)

Definition at line 931 of file options.c.

int subnet_inner_than ( const struct subnet ,
const struct subnet ,
int   
)

Definition at line 954 of file mdb.c.

struct iaddr subnet_number ( struct iaddr  ,
struct iaddr   
)

Definition at line 34 of file inet.c.

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 *   
)
isc_result_t supersede_group ( struct group_object ,
int   
)

Definition at line 74 of file memory.c.

int supersede_lease ( struct lease ,
struct lease ,
int  ,
int  ,
int  ,
int   
)

Definition at line 1133 of file mdb.c.

int supports_multiple_interfaces ( struct interface_info )
void tkey_free ( ns_tsig_key **  )
int token_indent_data_string ( FILE *  ,
int  ,
int  ,
const char *  ,
const char *  ,
struct data_string  
)

Definition at line 1207 of file print.c.

int token_print_indent ( FILE *  ,
int  ,
int  ,
const char *  ,
const char *  ,
const char *   
)

Definition at line 1250 of file print.c.

int token_print_indent_concat ( FILE *  ,
int  ,
int  ,
const char *  ,
const char *  ,
  ... 
)

Definition at line 1169 of file print.c.

void trace_conf_input ( trace_type_t ,
unsigned  ,
char *   
)
void trace_conf_stop ( trace_type_t ttype)
void trace_ddns_init ( void  )
void trigger_event ( struct eventqueue **  )

Definition at line 91 of file dispatch.c.

void uid_hash_add ( struct lease )

Definition at line 2102 of file mdb.c.

void uid_hash_delete ( struct lease )

Definition at line 2169 of file mdb.c.

void unbill_class ( struct lease )

Definition at line 1417 of file dhclient.c.

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

Definition at line 217 of file class.c.

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

Definition at line 70 of file dispatch.c.

int unset ( struct binding_scope ,
const char *   
)

Definition at line 4134 of file tree.c.

void update_partner ( struct lease )
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 5533 of file dhcp.c.

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 4324 of file options.c.

u_int16_t validate_port ( char *  )

Definition at line 659 of file inet.c.

u_int16_t validate_port_pair ( char *  )

Definition at line 685 of file inet.c.

u_int32_t wrapsum ( u_int32_t  )

Definition at line 84 of file packet.c.

int write_billing_class ( struct class )

Definition at line 970 of file db.c.

void write_billing_classes ( void  )

Definition at line 954 of file db.c.

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

Definition at line 4102 of file dhclient.c.

int write_client_lease ( struct client_state ,
struct client_lease ,
int  ,
int   
)

Definition at line 4256 of file dhclient.c.

void write_client_pid_file ( void  )

Definition at line 4807 of file dhclient.c.

int write_expression ( FILE *  ,
struct expression ,
int  ,
int  ,
int   
)

Definition at line 3298 of file tree.c.

int write_failover_state ( dhcp_failover_state_t *  )
int write_group ( struct group_object )

Definition at line 449 of file db.c.

int write_host ( struct host_decl )

Definition at line 1976 of file dhclient.c.

int write_ia ( const struct ia_xx )

Definition at line 518 of file db.c.

int write_lease ( struct lease )

Definition at line 1970 of file dhclient.c.

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 *   
)

Definition at line 3858 of file dhclient.c.

int write_leases ( void  )

Definition at line 2402 of file mdb.c.

int write_leases6 ( void  )
isc_result_t write_named_billing_class ( const void *  ,
unsigned  ,
void *   
)

Definition at line 858 of file db.c.

int write_server_duid ( void  )
void write_statements ( FILE *  ,
struct executable_statement ,
int   
)

Definition at line 751 of file execute.c.

Variable Documentation

struct universe agent_universe

Definition at line 165 of file stables.c.

int authoring_byte_order

Definition at line 83 of file dhcpd.c.

const char* binding_state_names[]

Definition at line 161 of file stables.c.

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

Definition at line 58 of file discover.c.

struct collection* collections

Definition at line 3178 of file dhcpd.h.

struct universe* config_universe

Definition at line 970 of file tables.c.

struct timeval cur_tv

Definition at line 35 of file dispatch.c.

int db_time_format

Definition at line 31 of file print.c.

struct enumeration ddns_styles

Definition at line 346 of file stables.c.

int ddns_update_style

Definition at line 78 of file dhcpd.c.

struct executable_statement* default_classification_rules

Definition at line 39 of file class.c.

struct collection default_collection

Definition at line 3177 of file dhcpd.h.

struct data_string default_duid

Definition at line 75 of file dhclient.c.

dhcp_control_object_t* dhcp_control_object

Definition at line 2448 of file dhcpd.h.

dhcp_failover_listener_t

Definition at line 3686 of file dhcpd.h.

const char* dhcp_flink_state_names[]
int(* dhcp_interface_discovery_hook) (struct interface_info *)

Definition at line 49 of file discover.c.

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

Definition at line 48 of file discover.c.

int(* dhcp_interface_shutdown_hook) (struct interface_info *)

Definition at line 51 of file discover.c.

isc_result_t(* dhcp_interface_startup_hook) (struct interface_info *)

Definition at line 50 of file discover.c.

int dhcp_max_agent_option_packet_length

Definition at line 66 of file dhclient.c.

int dhcp_option_default_priority_list[]
int dhcp_option_default_priority_list_count
omapi_object_type_t* dhcp_type_class

Definition at line 48 of file omapi.c.

omapi_object_type_t* dhcp_type_control
omapi_object_type_t* dhcp_type_failover_link
omapi_object_type_t* dhcp_type_failover_listener
omapi_object_type_t* dhcp_type_failover_state
omapi_object_type_t* dhcp_type_group
omapi_object_type_t* dhcp_type_host

Definition at line 70 of file mdb.c.

omapi_object_type_t* dhcp_type_interface

Definition at line 71 of file discover.c.

omapi_object_type_t* dhcp_type_lease

Definition at line 46 of file omapi.c.

omapi_object_type_t* dhcp_type_pool

Definition at line 47 of file omapi.c.

omapi_object_type_t* dhcp_type_shared_network
omapi_object_type_t* dhcp_type_subclass

Definition at line 49 of file omapi.c.

omapi_object_type_t* dhcp_type_subnet
struct universe dhcp_universe
int dhcpv4_over_dhcpv6

Definition at line 47 of file discover.c.

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

Definition at line 343 of file tables.c.

struct domain_search_list* domains

Definition at line 33 of file resolv.c.

int dont_use_fsync

Definition at line 79 of file dhcpd.c.

int duid_type

Definition at line 76 of file dhclient.c.

struct interface_info * dummy_interfaces

Definition at line 42 of file discover.c.

dhcp_failover_state_t* failover_states
struct interface_info * fallback_interface

Definition at line 42 of file discover.c.

const char* file

Definition at line 3717 of file dhcpd.h.

struct universe fqdn_universe

Definition at line 310 of file tables.c.

struct failover_option_info ft_options[]
int ft_sizes[]
u_int32_t fto_allowed[]
struct binding_scope* global_scope

Definition at line 38 of file tree.c.

group_hash_t* group_name_hash

Definition at line 32 of file memory.c.

int(* group_write_hook) (struct group_object *)

Definition at line 33 of file memory.c.

const char* hardware_types[256]

Definition at line 704 of file tables.c.

int have_billing_classes

Definition at line 41 of file class.c.

host_hash_t* host_hw_addr_hash

Definition at line 34 of file mdb.c.

host_hash_t* host_name_hash

Definition at line 36 of file mdb.c.

host_hash_t* host_uid_hash

Definition at line 35 of file mdb.c.

ia_hash_t* ia_na_active
ia_hash_t* ia_pd_active
ia_hash_t* ia_ta_active

Definition at line 35 of file icmp.c.

trace_type_t* inpacket_trace
int interface_count

Definition at line 78 of file discover.c.

int interface_max

Definition at line 79 of file discover.c.

trace_type_t* interface_trace
struct interface_info** interface_vector

Definition at line 77 of file discover.c.

struct interface_info* interfaces

Definition at line 42 of file discover.c.

int interfaces_requested

Definition at line 68 of file dhclient.c.

struct class known_class

Definition at line 3176 of file dhcpd.h.

lease_id_hash_t* lease_hw_addr_hash

Definition at line 39 of file mdb.c.

int lease_id_format

Definition at line 84 of file dhcpd.c.

lease_ip_hash_t* lease_ip_addr_hash

Definition at line 38 of file mdb.c.

lease_id_hash_t* lease_uid_hash

Definition at line 37 of file mdb.c.

struct in_addr limited_broadcast

Definition at line 53 of file discover.c.

const char int line

Definition at line 3717 of file dhcpd.h.

struct in_addr local_address

Definition at line 56 of file discover.c.

int local_family

Definition at line 55 of file discover.c.

u_int16_t local_port

Definition at line 91 of file dhclient.c.

int max_ack_delay_secs
int max_ack_delay_usecs
int max_outstanding_acks
struct name_server* name_servers

Definition at line 32 of file resolv.c.

int nowait

Definition at line 101 of file dhclient.c.

failover_option_t null_failover_option
int num_pools
int numclasseswritten

Definition at line 68 of file mdb.c.

struct universe nwip_universe

Definition at line 282 of file tables.c.

trace_type_t* outpacket_trace
int outstanding_pings

Definition at line 43 of file dhcp.c.

const char* path_dhclient_conf

Definition at line 56 of file dhclient.c.

const char* path_dhclient_db

Definition at line 57 of file dhclient.c.

const char* path_dhclient_duid

Definition at line 61 of file dhclient.c.

const char* path_dhclient_pid

Definition at line 58 of file dhclient.c.

char* path_dhclient_script

Definition at line 60 of file dhclient.c.

const char* path_dhcpd_conf

Definition at line 86 of file dhcpd.c.

const char* path_dhcpd_db

Definition at line 87 of file dhcpd.c.

const char* path_dhcpd_pid

Definition at line 88 of file dhcpd.c.

char path_resolv_conf[]

Definition at line 34 of file resolv.c.

struct ipv6_pool** pools
int prefix_length_mode

Definition at line 81 of file dhcpd.c.

struct enumeration prefix_length_modes

Definition at line 361 of file stables.c.

struct protocol* protocols
int quiet_interface_discovery

Definition at line 44 of file discover.c.

u_int16_t remote_port

Definition at line 92 of file dhclient.c.

int require_all_ias

Definition at line 106 of file dhclient.c.

struct group* root_group

Definition at line 31 of file memory.c.

struct eventqueue* rw_queue_empty

Definition at line 37 of file dispatch.c.

int server_id_check

Definition at line 80 of file dhcpd.c.

struct universe server_universe

Definition at line 175 of file stables.c.

gid_t set_gid
uid_t set_uid
struct shared_network* shared_networks

Definition at line 33 of file mdb.c.

enum dhcp_shutdown_state shutdown_state

Definition at line 1416 of file dhcpd.c.

failover_option_t skip_failover_option
struct subnet* subnets

Definition at line 32 of file mdb.c.

struct enumeration syslog_enum

Definition at line 431 of file stables.c.

struct timeout* timeouts

Definition at line 33 of file dispatch.c.

struct client_config top_level_config

Definition at line 32 of file clparse.c.

int universe_count

Definition at line 964 of file tables.c.

universe_hash_t* universe_hash

Definition at line 962 of file tables.c.

int universe_max

Definition at line 964 of file tables.c.

struct universe** universes

Definition at line 963 of file tables.c.

struct class unknown_class

Definition at line 3175 of file dhcpd.h.

lease_id_hash_t extern struct option* vendor_cfg_option

Definition at line 1820 of file dhcpd.h.

struct universe vsio_universe

Definition at line 689 of file tables.c.

int wanted_ia_na

Definition at line 103 of file dhclient.c.

int wanted_ia_pd

Definition at line 105 of file dhclient.c.

int wanted_ia_ta

Definition at line 104 of file dhclient.c.