ISC DHCP  4.4.1
A reference DHCPv4 and DHCPv6 implementation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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
 
u_int16_t relay_port = 0
 
int dhcpv4_over_dhcpv6 = 0
 
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 34 of file discover.c.

#define IF_LINE_LENGTH   1024

Definition at line 32 of file discover.c.

#define lifc_buf   ifc_buf

Definition at line 205 of file discover.c.

#define lifc_len   ifc_len

Definition at line 204 of file discover.c.

#define lifc_req   ifc_req

Definition at line 206 of file discover.c.

#define LIFCONF   ifconf

Definition at line 200 of file discover.c.

#define lifr_addr   ifr_addr

Definition at line 202 of file discover.c.

#define lifr_flags   ifr_flags

Definition at line 203 of file discover.c.

#define lifr_name   ifr_name

Definition at line 201 of file discover.c.

#define LIFREQ   ifreq

Definition at line 199 of file discover.c.

#define SIOCGLIFCONF   SIOCGIFCONF

Definition at line 197 of file discover.c.

#define SIOCGLIFFLAGS   SIOCGIFFLAGS

Definition at line 198 of file discover.c.

Function Documentation

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

Definition at line 489 of file discover.c.

int begin_iface_scan ( struct iface_conf_list ifaces)

Definition at line 248 of file discover.c.

isc_result_t dhcp_interface_create ( omapi_object_t **  lp,
omapi_object_t id 
)

Definition at line 1448 of file discover.c.

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

Definition at line 1265 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 1257 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 1364 of file discover.c.

isc_result_t dhcp_interface_remove ( omapi_object_t lp,
omapi_object_t id 
)

Definition at line 1464 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 1220 of file discover.c.

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

Definition at line 1294 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 1330 of file discover.c.

void discover_interfaces ( int  state)

Definition at line 568 of file discover.c.

void end_iface_scan ( struct iface_conf_list ifaces)

Definition at line 379 of file discover.c.

isc_result_t got_one ( omapi_object_t h)

Definition at line 1088 of file discover.c.

int if_readsocket ( omapi_object_t h)

Definition at line 1043 of file discover.c.

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

Definition at line 130 of file discover.c.

isc_result_t interface_setup ( void  )

Definition at line 92 of file discover.c.

void interface_snorf ( struct interface_info tmp,
int  ir 
)

Definition at line 1569 of file discover.c.

void interface_stash ( struct interface_info tptr)

Definition at line 1526 of file discover.c.

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

Definition at line 312 of file discover.c.

void reinitialize_interfaces ( void  )

Definition at line 1073 of file discover.c.

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

Definition at line 1054 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 67 of file discover.c.

int(* dhcp_interface_discovery_hook)(struct interface_info *)

Definition at line 50 of file discover.c.

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

Definition at line 49 of file discover.c.

int(* dhcp_interface_shutdown_hook)(struct interface_info *)

Definition at line 52 of file discover.c.

isc_result_t(* dhcp_interface_startup_hook)(struct interface_info *)

Definition at line 51 of file discover.c.

omapi_object_type_t* dhcp_type_interface

Definition at line 80 of file discover.c.

int dhcpv4_over_dhcpv6 = 0

Definition at line 48 of file discover.c.

struct interface_info * dummy_interfaces

Definition at line 42 of file discover.c.

struct interface_info * fallback_interface

Definition at line 42 of file discover.c.

int interface_count

Definition at line 87 of file discover.c.

int interface_max

Definition at line 88 of file discover.c.

struct interface_info** interface_vector

Definition at line 86 of file discover.c.

struct interface_info* interfaces

Definition at line 42 of file discover.c.

int interfaces_invalidated

Definition at line 43 of file discover.c.

struct in_addr limited_broadcast

Definition at line 54 of file discover.c.

struct in_addr local_address

Definition at line 57 of file discover.c.

int local_family = AF_INET

Definition at line 56 of file discover.c.

u_int16_t local_port

Definition at line 45 of file discover.c.

int quiet_interface_discovery

Definition at line 44 of file discover.c.

u_int16_t relay_port = 0

Definition at line 47 of file discover.c.

u_int16_t remote_port

Definition at line 46 of file discover.c.