#include "dhcpd.h"
#include <syslog.h>
#include <signal.h>
#include <errno.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <limits.h>
#include <dns/result.h>
Go to the source code of this file.
Defines | |
#define | ASSERT_STATE(state_is, state_shouldbe) {} |
Functions | |
int | asprintf (char **strp, const char *fmt,...) |
void | run_stateless (int exit_mode) |
int | main (int argc, char **argv) |
isc_result_t | find_class (struct class **c, const char *s, const char *file, int line) |
int | check_collection (struct packet *packet, struct lease *lease, struct collection *collection) |
void | classify (struct packet *packet, struct class *class) |
int | unbill_class (struct lease *lease, struct class *class) |
int | find_subnet (struct subnet **sp, struct iaddr addr, const char *file, int line) |
void | state_reboot (void *cpp) |
void | state_init (void *cpp) |
void | state_selecting (void *cpp) |
void | dhcpack (struct packet *packet) |
void | bind_lease (struct client_state *client, struct in_addr *siaddr) |
void | state_bound (void *cpp) |
void | state_stop (void *cpp) |
int | commit_leases () |
int | write_lease (struct lease *lease) |
int | write_host (struct host_decl *host) |
void | bootp (struct packet *packet) |
void | dhcp (struct packet *packet) |
void | dhcpoffer (struct packet *packet) |
struct client_lease * | packet_to_lease (struct packet *packet, struct client_state *client) |
void | dhcpnak (struct packet *packet) |
void | send_discover (void *cpp) |
void | state_panic (void *cpp) |
void | send_request (void *cpp) |
void | send_decline (void *cpp) |
void | send_release (void *cpp) |
void | make_client_options (struct client_state *client, struct client_lease *lease, u_int8_t *type, struct option_cache *sid, struct iaddr *rip, struct option **prl, struct option_state **op) |
void | make_discover (struct client_state *client, struct client_lease *lease) |
void | make_request (struct client_state *client, struct client_lease *lease) |
void | make_decline (struct client_state *client, struct client_lease *lease) |
void | make_release (struct client_state *client, struct client_lease *lease) |
void | destroy_client_lease (struct client_lease *lease) |
void | rewrite_client_leases () |
void | write_lease_option (struct option_cache *oc, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff) |
isc_result_t | form_duid (struct data_string *duid, const char *file, int line) |
isc_result_t | write_client6_lease (struct client_state *client, struct dhc6_lease *lease, int rewrite, int sync) |
int | write_client_lease (struct client_state *client, struct client_lease *lease, int rewrite, int makesure) |
void | script_init (struct client_state *client, const char *reason, struct string_list *medium) |
void | client_option_envadd (struct option_cache *oc, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff) |
void | script_write_params (struct client_state *client, const char *prefix, struct client_lease *lease) |
void | script_write_requested (struct client_state *client) |
int | script_go (struct client_state *client) |
void | client_envadd (struct client_state *client, const char *prefix, const char *name, const char *fmt,...) |
int | dhcp_option_ev_name (char *buf, size_t buflen, struct option *option) |
void | go_daemon () |
void | write_client_pid_file () |
void | client_location_changed () |
void | do_release (struct client_state *client) |
int | dhclient_interface_shutdown_hook (struct interface_info *interface) |
int | dhclient_interface_discovery_hook (struct interface_info *tmp) |
isc_result_t | dhclient_interface_startup_hook (struct interface_info *interface) |
int | parse_agent_information_option (struct packet *packet, int len, u_int8_t *data) |
unsigned | cons_agent_information_options (struct option_state *cfg_options, struct dhcp_packet *outpacket, unsigned agentix, unsigned length) |
isc_result_t | dhcp_set_control_state (control_object_state_t oldstate, control_object_state_t newstate) |
void | dhcpv4_client_assignments (void) |
Variables | |
TIME | default_lease_time = 43200 |
TIME | max_lease_time = 86400 |
const char * | path_dhclient_conf = _PATH_DHCLIENT_CONF |
const char * | path_dhclient_db = NULL |
const char * | path_dhclient_pid = NULL |
char * | path_dhclient_script = path_dhclient_script_array |
isc_boolean_t | no_pid_file = ISC_FALSE |
int | dhcp_max_agent_option_packet_length = 0 |
int | interfaces_requested = 0 |
struct iaddr | iaddr_broadcast = { 4, { 255, 255, 255, 255 } } |
struct iaddr | iaddr_any = { 4, { 0, 0, 0, 0 } } |
struct in_addr | inaddr_any |
struct sockaddr_in | sockaddr_broadcast |
struct in_addr | giaddr |
struct data_string | default_duid |
int | duid_type = 0 |
int | duid_v4 = 1 |
int | std_dhcid = 0 |
u_int16_t | local_port = 0 |
u_int16_t | remote_port = 0 |
int | no_daemon = 0 |
struct string_list * | client_env = NULL |
int | client_env_count = 0 |
int | onetry = 0 |
int | quiet = 1 |
int | nowait = 0 |
int | stateless = 0 |
int | wanted_ia_na = -1 |
int | wanted_ia_ta = 0 |
int | wanted_ia_pd = 0 |
char * | mockup_relay = NULL |
int | bootp_broadcast_always = 0 |
u_int32_t | default_requested_options [] |
FILE * | leaseFile = NULL |
int | leases_written = 0 |
char | scriptName [256] |
FILE * | scriptFile |
#define ASSERT_STATE | ( | state_is, | |||
state_shouldbe | ) | {} |
Definition at line 80 of file dhclient.c.
int asprintf | ( | char ** | strp, | |
const char * | fmt, | |||
... | ||||
) |
void bind_lease | ( | struct client_state * | client, | |
struct in_addr * | siaddr | |||
) |
Definition at line 1638 of file dhclient.c.
void bootp | ( | struct packet * | packet | ) |
Definition at line 1804 of file dhclient.c.
int check_collection | ( | struct packet * | packet, | |
struct lease * | lease, | |||
struct collection * | collection | |||
) |
Definition at line 1226 of file dhclient.c.
Definition at line 1234 of file dhclient.c.
void client_envadd | ( | struct client_state * | client, | |
const char * | prefix, | |||
const char * | name, | |||
const char * | fmt, | |||
... | ||||
) |
Definition at line 3974 of file dhclient.c.
void client_location_changed | ( | void | ) |
Definition at line 4116 of file dhclient.c.
void client_option_envadd | ( | struct option_cache * | oc, | |
struct packet * | packet, | |||
struct lease * | lease, | |||
struct client_state * | client_state, | |||
struct option_state * | in_options, | |||
struct option_state * | cfg_options, | |||
struct binding_scope ** | scope, | |||
struct universe * | u, | |||
void * | stuff | |||
) |
Definition at line 3720 of file dhclient.c.
int commit_leases | ( | void | ) |
Definition at line 1787 of file dhclient.c.
unsigned cons_agent_information_options | ( | struct option_state * | cfg_options, | |
struct dhcp_packet * | outpacket, | |||
unsigned | agentix, | |||
unsigned | length | |||
) |
Definition at line 4326 of file dhclient.c.
void destroy_client_lease | ( | struct client_lease * | lease | ) |
Definition at line 3166 of file dhclient.c.
int dhclient_interface_discovery_hook | ( | struct interface_info * | tmp | ) |
Definition at line 4221 of file dhclient.c.
int dhclient_interface_shutdown_hook | ( | struct interface_info * | interface | ) |
Definition at line 4214 of file dhclient.c.
isc_result_t dhclient_interface_startup_hook | ( | struct interface_info * | interface | ) |
Definition at line 4264 of file dhclient.c.
void dhcp | ( | struct packet * | packet | ) |
Definition at line 1837 of file dhclient.c.
Definition at line 4007 of file dhclient.c.
isc_result_t dhcp_set_control_state | ( | control_object_state_t | oldstate, | |
control_object_state_t | newstate | |||
) |
Definition at line 4410 of file dhclient.c.
void dhcpack | ( | struct packet * | packet | ) |
Definition at line 1469 of file dhclient.c.
void dhcpnak | ( | struct packet * | packet | ) |
Definition at line 2197 of file dhclient.c.
void dhcpoffer | ( | struct packet * | packet | ) |
Definition at line 1943 of file dhclient.c.
void dhcpv4_client_assignments | ( | void | ) |
Definition at line 4803 of file dhclient.c.
void do_release | ( | struct client_state * | client | ) |
Definition at line 4150 of file dhclient.c.
Definition at line 1220 of file dhclient.c.
Definition at line 1247 of file dhclient.c.
isc_result_t form_duid | ( | struct data_string * | duid, | |
const char * | file, | |||
int | line | |||
) |
Definition at line 3313 of file dhclient.c.
void go_daemon | ( | void | ) |
Definition at line 4047 of file dhclient.c.
Definition at line 119 of file dhclient.c.
void make_client_options | ( | struct client_state * | client, | |
struct client_lease * | lease, | |||
u_int8_t * | type, | |||
struct option_cache * | sid, | |||
struct iaddr * | rip, | |||
struct option ** | prl, | |||
struct option_state ** | op | |||
) |
Definition at line 2750 of file dhclient.c.
void make_decline | ( | struct client_state * | client, | |
struct client_lease * | lease | |||
) |
Definition at line 3051 of file dhclient.c.
void make_discover | ( | struct client_state * | client, | |
struct client_lease * | lease | |||
) |
Definition at line 2898 of file dhclient.c.
void make_release | ( | struct client_state * | client, | |
struct client_lease * | lease | |||
) |
Definition at line 3110 of file dhclient.c.
void make_request | ( | struct client_state * | client, | |
struct client_lease * | lease | |||
) |
Definition at line 2962 of file dhclient.c.
struct client_lease* packet_to_lease | ( | struct packet * | packet, | |
struct client_state * | client | |||
) | [read] |
Definition at line 2078 of file dhclient.c.
Definition at line 4316 of file dhclient.c.
void rewrite_client_leases | ( | void | ) |
Definition at line 3180 of file dhclient.c.
void run_stateless | ( | int | exit_mode | ) |
Definition at line 1137 of file dhclient.c.
int script_go | ( | struct client_state * | client | ) |
Definition at line 3893 of file dhclient.c.
void script_init | ( | struct client_state * | client, | |
const char * | reason, | |||
struct string_list * | medium | |||
) |
Definition at line 3689 of file dhclient.c.
void script_write_params | ( | struct client_state * | client, | |
const char * | prefix, | |||
struct client_lease * | lease | |||
) |
Definition at line 3761 of file dhclient.c.
void script_write_requested | ( | struct client_state * | client | ) |
Definition at line 3874 of file dhclient.c.
void send_decline | ( | void * | cpp | ) |
Definition at line 2666 of file dhclient.c.
void send_discover | ( | void * | cpp | ) |
Definition at line 2276 of file dhclient.c.
void send_release | ( | void * | cpp | ) |
Definition at line 2689 of file dhclient.c.
void send_request | ( | void * | cpp | ) |
Definition at line 2499 of file dhclient.c.
void state_bound | ( | void * | cpp | ) |
Definition at line 1723 of file dhclient.c.
void state_init | ( | void * | cpp | ) |
Definition at line 1347 of file dhclient.c.
void state_panic | ( | void * | cpp | ) |
Definition at line 2389 of file dhclient.c.
void state_reboot | ( | void * | cpp | ) |
Definition at line 1305 of file dhclient.c.
void state_selecting | ( | void * | cpp | ) |
Definition at line 1384 of file dhclient.c.
void state_stop | ( | void * | cpp | ) |
Definition at line 1765 of file dhclient.c.
Definition at line 1240 of file dhclient.c.
isc_result_t write_client6_lease | ( | struct client_state * | client, | |
struct dhc6_lease * | lease, | |||
int | rewrite, | |||
int | sync | |||
) |
Definition at line 3418 of file dhclient.c.
int write_client_lease | ( | struct client_state * | client, | |
struct client_lease * | lease, | |||
int | rewrite, | |||
int | makesure | |||
) |
Definition at line 3545 of file dhclient.c.
void write_client_pid_file | ( | void | ) |
Definition at line 4089 of file dhclient.c.
Definition at line 1798 of file dhclient.c.
Definition at line 1792 of file dhclient.c.
void write_lease_option | ( | struct option_cache * | oc, | |
struct packet * | packet, | |||
struct lease * | lease, | |||
struct client_state * | client_state, | |||
struct option_state * | in_options, | |||
struct option_state * | cfg_options, | |||
struct binding_scope ** | scope, | |||
struct universe * | u, | |||
void * | stuff | |||
) |
Definition at line 3242 of file dhclient.c.
Definition at line 100 of file dhclient.c.
struct string_list* client_env = NULL |
Definition at line 90 of file dhclient.c.
int client_env_count = 0 |
Definition at line 91 of file dhclient.c.
struct data_string default_duid |
Definition at line 73 of file dhclient.c.
TIME default_lease_time = 43200 |
Definition at line 52 of file dhclient.c.
u_int32_t default_requested_options[] |
Definition at line 64 of file dhclient.c.
Definition at line 74 of file dhclient.c.
Definition at line 75 of file dhclient.c.
struct in_addr giaddr |
Definition at line 72 of file dhclient.c.
Definition at line 69 of file dhclient.c.
struct iaddr iaddr_broadcast = { 4, { 255, 255, 255, 255 } } |
Definition at line 68 of file dhclient.c.
struct in_addr inaddr_any |
Definition at line 70 of file dhclient.c.
Definition at line 66 of file dhclient.c.
FILE* leaseFile = NULL |
Definition at line 3177 of file dhclient.c.
int leases_written = 0 |
Definition at line 3178 of file dhclient.c.
u_int16_t local_port = 0 |
Definition at line 87 of file dhclient.c.
TIME max_lease_time = 86400 |
Definition at line 53 of file dhclient.c.
char* mockup_relay = NULL |
Definition at line 99 of file dhclient.c.
Definition at line 89 of file dhclient.c.
isc_boolean_t no_pid_file = ISC_FALSE |
Definition at line 62 of file dhclient.c.
Definition at line 94 of file dhclient.c.
Definition at line 92 of file dhclient.c.
const char* path_dhclient_conf = _PATH_DHCLIENT_CONF |
Definition at line 55 of file dhclient.c.
const char* path_dhclient_db = NULL |
Definition at line 56 of file dhclient.c.
const char* path_dhclient_pid = NULL |
Definition at line 57 of file dhclient.c.
char* path_dhclient_script = path_dhclient_script_array |
Definition at line 59 of file dhclient.c.
Definition at line 93 of file dhclient.c.
u_int16_t remote_port = 0 |
Definition at line 88 of file dhclient.c.
FILE* scriptFile |
Definition at line 3687 of file dhclient.c.
char scriptName[256] |
Definition at line 3686 of file dhclient.c.
struct sockaddr_in sockaddr_broadcast |
Definition at line 71 of file dhclient.c.
Definition at line 95 of file dhclient.c.
Definition at line 76 of file dhclient.c.
int wanted_ia_na = -1 |
Definition at line 96 of file dhclient.c.
int wanted_ia_pd = 0 |
Definition at line 98 of file dhclient.c.
int wanted_ia_ta = 0 |
Definition at line 97 of file dhclient.c.