#define DHCP_OPTION_MAX 256 |
DHCP can define no more than 256 options, 0-255, in a "universe"
Definition at line 210 of file dhcp4_lease.h.
#define DHCP_UNIVERSE_MAX 10 |
DHCP currently supports no more than 10 universes (a hardcoded constant in tables.c). It defines 4 of its own and supports up to 5 user defined option spaces.
Definition at line 215 of file dhcp4_lease.h.
#define DHCPV4_MAX_OPTION_LENGTH 1236 |
The maximum length in bytes of a DHCP option:
Definition at line 106 of file dhcp4_lease.h.
typedef enum dho_fqdn_c_e DHCP_FQDN_Options |
DHCP Fully Qualified Domain Name (fqdn) Sub-Options:
typedef enum dho_nwip_c_e DHCP_NWIP_Options |
DHCP NetWare/IP (nwip) Sub-Options:
typedef enum dhcp_oc_e DHCP_Option_Code |
DHCP Universe Option Codes - Codes of options in the DHCP universe. enum value names map to option names converted to lowercase, with '_' replaced by '-'.
typedef enum dho_rai_c_e DHCP_RAI_Options |
DHCP Relay Agent Information Sub-Options:
typedef enum dhcp_u_e DHCP_Universe |
"Universe" codes defined by ISC DHCP:
typedef struct dhcp4_lease_s DHCPv4_lease |
The DHCP lease structure
typedef struct dhcp4_option_s DHCPv4_option |
The DHCP Option structure.
Structured options (options with more than one member) are laid out as C structures in 'opt->value', with a list of pointers to each member following the C structure. opt->length will be : sizeof(structure) + (n_members * sizeof(void*)). ie. sizeof(structure) == opt->length -(n_members * sizeof(void*)).
Array options have exactly opt->n_members elements of opt->size, and are packed as a c array.
For scalars, n_members == 1.
typedef void(*) DHCPv4_option_handler(DHCPv4_option *, void *) |
The DHCP Option Callback function type
Definition at line 148 of file dhcp4_lease.h.
DHCPv4_Option_Structure_Type - used internally by the DHCPv4_lease parser.
typedef enum dhcp_option_type__e DHCPv4_Option_Type |
DHCP Option Type Codes:
enum dhcp_oc_e |
DHCP Universe Option Codes - Codes of options in the DHCP universe. enum value names map to option names converted to lowercase, with '_' replaced by '-'.
Definition at line 233 of file dhcp4_lease.h.
enum dhcp_option_type__e |
DHCP Option Type Codes:
Definition at line 39 of file dhcp4_lease.h.
enum dhcp_u_e |
"Universe" codes defined by ISC DHCP:
Definition at line 218 of file dhcp4_lease.h.
DHCPv4_Option_Structure_Type - used internally by the DHCPv4_lease parser.
Definition at line 95 of file dhcp4_lease.h.
enum dho_fqdn_c_e |
DHCP Fully Qualified Domain Name (fqdn) Sub-Options:
Definition at line 364 of file dhcp4_lease.h.
enum dho_nwip_c_e |
DHCP NetWare/IP (nwip) Sub-Options:
Definition at line 343 of file dhcp4_lease.h.
enum dho_rai_c_e |
DHCP Relay Agent Information Sub-Options:
DHCO_RAI_CIRCUIT_ID | rai.circuit-id |
DHCO_RAI_REMOTE_ID | rai.remote-id |
DHCO_RAI_AGENT_ID | rai.agent-id |
DHCO_RAI_N |
Definition at line 330 of file dhcp4_lease.h.
DHCPv4_option* dhcpv4_get_option_by_code | ( | DHCPv4_lease * | , | |
uint8_t | universe, | |||
uint8_t | code | |||
) |
returns a DHCP lease option by universe and option code, or NULL
Definition at line 59 of file dhcp4_lease.c.
References dhcp4_option_s::code, dhcp4_lease_s::options, and dhcp4_option_s::unicode.
DHCPv4_option* dhcpv4_get_option_by_name | ( | DHCPv4_lease * | , | |
char * | ||||
) |
returns a DHCP lease option by name, or NULL
Definition at line 69 of file dhcp4_lease.c.
References dhcp4_option_s::name, and dhcp4_lease_s::options_by_name.
DHCPv4_lease* dhcpv4_lease | ( | struct client_state * | ) |
include "dhcpd.h" to get this creates a DHCPv4_lease from an ISC DHCP 'struct client_state'.
Definition at line 91 of file dhcp4_lease.c.
References dhcp4_lease_s::address, dhcp4_lease_s::expiry, dhcp4_lease_s::filename, dhcp4_lease_s::if_index, dhcp4_lease_s::if_name, dhcp4_lease_s::is_bootp, dhcp4_lease_s::is_static, dhcp4_lease_s::rebind, dhcp4_lease_s::renewal, dhcp4_lease_s::requested, dhcp4_lease_s::requested_address, dhcp4_lease_s::server_address, and dhcp4_lease_s::server_name.
Referenced by dhcp4_nic_callback().
void dhcpv4_lease_free | ( | DHCPv4_lease * | ) |
frees all resources associated with lease
Definition at line 181 of file dhcp4_lease.c.
References dhcp4_lease_s::filename, dhcp4_lease_s::if_name, dhcp4_lease_s::options, and dhcp4_lease_s::server_name.
Referenced by dhcpv4_control_free().
int dhcpv4_pack_lease | ( | DHCPv4_lease * | , | |
uint8_t * | buf, | |||
uint32_t | len | |||
) |
packs a DHCPv4_lease in a buffer of length length, suitable for IPC / mmap'd file storage.
Definition at line 694 of file dhcp4_lease.c.
References dhcpv4_pack_s::buf, dhcpv4_pack_s::bufp, dhcpv4_process_options(), dhcp4_lease_s::filename, dhcp4_lease_s::if_name, dhcpv4_pack_s::lease, and dhcp4_lease_s::server_name.
void dhcpv4_process_options | ( | DHCPv4_lease * | , | |
DHCPv4_option_handler | , | |||
void * | ||||
) |
calls handler with each option in lease and the void* arg
Definition at line 220 of file dhcp4_lease.c.
References dhcp4_lease_s::handler, dhcp4_lease_s::handler_arg, and dhcp4_lease_s::options.
Referenced by dhcp4_process_lease(), and dhcpv4_pack_lease().
DHCPv4_lease* dhcpv4_unpack_lease | ( | uint8_t * | buf | ) |
unpacks a DHCPv4_lease from a buffer packed by dhcpv4_pack_lease.
Definition at line 775 of file dhcp4_lease.c.
References dhcpv4_pack_s::bufp, and dhcp4_option_s::value.