ISC DHCP  4.3.3-P1
A reference DHCPv4 and DHCPv6 implementation
discover.c File Reference
#include "dhcpd.h"
#include <sys/ioctl.h>
#include <errno.h>

Go to the source code of this file.

Data Structures

struct  iface_conf_list
 
struct  iface_info
 

Macros

#define IF_LINE_LENGTH   1024
 
#define BSD_COMP   /* needed on Solaris for SIOCGLIFNUM */
 
#define SIOCGLIFCONF   SIOCGIFCONF
 
#define SIOCGLIFFLAGS   SIOCGIFFLAGS
 
#define LIFREQ   ifreq
 
#define LIFCONF   ifconf
 
#define lifr_name   ifr_name
 
#define lifr_addr   ifr_addr
 
#define lifr_flags   ifr_flags
 
#define lifc_len   ifc_len
 
#define lifc_buf   ifc_buf
 
#define lifc_req   ifc_req
 

Functions

isc_result_t interface_setup ()
 
isc_result_t interface_initialize (omapi_object_t *ipo, const char *file, int line)
 
int begin_iface_scan (struct iface_conf_list *ifaces)
 
int next_iface (struct iface_info *info, int *err, struct iface_conf_list *ifaces)
 
void end_iface_scan (struct iface_conf_list *ifaces)
 
void add_ipv4_addr_to_interface (struct interface_info *iface, const struct in_addr *addr)
 
void discover_interfaces (int state)
 
int if_readsocket (omapi_object_t *h)
 
int setup_fallback (struct interface_info **fp, const char *file, int line)
 
void reinitialize_interfaces ()
 
isc_result_t got_one (omapi_object_t *h)
 
isc_result_t dhcp_interface_set_value (omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
 
isc_result_t dhcp_interface_get_value (omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
 
isc_result_t dhcp_interface_destroy (omapi_object_t *h, const char *file, int line)
 
isc_result_t dhcp_interface_signal_handler (omapi_object_t *h, const char *name, va_list ap)
 
isc_result_t dhcp_interface_stuff_values (omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
 
isc_result_t dhcp_interface_lookup (omapi_object_t **ip, omapi_object_t *id, omapi_object_t *ref)
 
isc_result_t dhcp_interface_create (omapi_object_t **lp, omapi_object_t *id)
 
isc_result_t dhcp_interface_remove (omapi_object_t *lp, omapi_object_t *id)
 
void interface_stash (struct interface_info *tptr)
 
void interface_snorf (struct interface_info *tmp, int ir)
 

Variables

struct interface_infointerfaces
 
struct interface_infodummy_interfaces
 
struct interface_infofallback_interface
 
int interfaces_invalidated
 
int quiet_interface_discovery
 
u_int16_t local_port
 
u_int16_t remote_port
 
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 *)
 
int(* dhcp_interface_shutdown_hook )(struct interface_info *)
 
struct in_addr limited_broadcast
 
int local_family = AF_INET
 
struct in_addr local_address
 
void(* bootp_packet_handler )(struct interface_info *, struct dhcp_packet *, unsigned, unsigned int, struct iaddr, struct hardware *)
 
omapi_object_type_tdhcp_type_interface
 
struct interface_info ** interface_vector
 
int interface_count
 
int interface_max
 

Macro Definition Documentation

#define BSD_COMP   /* needed on Solaris for SIOCGLIFNUM */

Definition at line 35 of file discover.c.

#define IF_LINE_LENGTH   1024

Definition at line 33 of file discover.c.

#define lifc_buf   ifc_buf

Definition at line 196 of file discover.c.

#define lifc_len   ifc_len

Definition at line 195 of file discover.c.

#define lifc_req   ifc_req

Definition at line 197 of file discover.c.

#define LIFCONF   ifconf

Definition at line 191 of file discover.c.

#define lifr_addr   ifr_addr

Definition at line 193 of file discover.c.

#define lifr_flags   ifr_flags

Definition at line 194 of file discover.c.

#define lifr_name   ifr_name

Definition at line 192 of file discover.c.

#define LIFREQ   ifreq

Definition at line 190 of file discover.c.

#define SIOCGLIFCONF   SIOCGIFCONF

Definition at line 188 of file discover.c.

#define SIOCGLIFFLAGS   SIOCGIFFLAGS

Definition at line 189 of file discover.c.

Function Documentation

void add_ipv4_addr_to_interface ( struct interface_info iface,
const struct in_addr *  addr 
)

Definition at line 476 of file discover.c.

int begin_iface_scan ( struct iface_conf_list ifaces)

Definition at line 239 of file discover.c.

isc_result_t dhcp_interface_create ( omapi_object_t **  lp,
omapi_object_t id 
)

Definition at line 1369 of file discover.c.

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

Definition at line 1186 of file discover.c.

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

Definition at line 1178 of file discover.c.

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

Definition at line 1285 of file discover.c.

isc_result_t dhcp_interface_remove ( omapi_object_t lp,
omapi_object_t id 
)

Definition at line 1385 of file discover.c.

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

Definition at line 1141 of file discover.c.

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

Definition at line 1215 of file discover.c.

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

Definition at line 1251 of file discover.c.

void discover_interfaces ( int  state)

Definition at line 555 of file discover.c.

void end_iface_scan ( struct iface_conf_list ifaces)

Definition at line 370 of file discover.c.

isc_result_t got_one ( omapi_object_t h)

Definition at line 1009 of file discover.c.

int if_readsocket ( omapi_object_t h)

Definition at line 964 of file discover.c.

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

Definition at line 121 of file discover.c.

isc_result_t interface_setup ( void  )

Definition at line 83 of file discover.c.

void interface_snorf ( struct interface_info tmp,
int  ir 
)

Definition at line 1485 of file discover.c.

void interface_stash ( struct interface_info tptr)

Definition at line 1447 of file discover.c.

int next_iface ( struct iface_info info,
int err,
struct iface_conf_list ifaces 
)

Definition at line 303 of file discover.c.

void reinitialize_interfaces ( void  )

Definition at line 994 of file discover.c.

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

Definition at line 975 of file discover.c.

Variable Documentation

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.

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.

omapi_object_type_t* dhcp_type_interface

Definition at line 71 of file discover.c.

struct interface_info * dummy_interfaces

Definition at line 43 of file discover.c.

struct interface_info * fallback_interface

Definition at line 43 of file discover.c.

int interface_count

Definition at line 78 of file discover.c.

int interface_max

Definition at line 79 of file discover.c.

struct interface_info** interface_vector

Definition at line 77 of file discover.c.

struct interface_info* interfaces

Definition at line 43 of file discover.c.

int interfaces_invalidated

Definition at line 44 of file discover.c.

struct in_addr limited_broadcast

Definition at line 53 of file discover.c.

struct in_addr local_address

Definition at line 56 of file discover.c.

int local_family = AF_INET

Definition at line 55 of file discover.c.

u_int16_t local_port

Definition at line 46 of file discover.c.

int quiet_interface_discovery

Definition at line 45 of file discover.c.

u_int16_t remote_port

Definition at line 47 of file discover.c.