ISC DHCP 4.4.3-P1
A reference DHCPv4 and DHCPv6 implementation
 
Loading...
Searching...
No Matches
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 = 0
 
struct interface_infodummy_interfaces = 0
 
struct interface_infofallback_interface = 0
 
int interfaces_invalidated
 
int quiet_interface_discovery
 
u_int16_t local_port = 0
 
u_int16_t remote_port = 0
 
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

◆ BSD_COMP

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

Definition at line 34 of file discover.c.

◆ IF_LINE_LENGTH

#define IF_LINE_LENGTH   1024

Definition at line 32 of file discover.c.

◆ lifc_buf

#define lifc_buf   ifc_buf

Definition at line 208 of file discover.c.

◆ lifc_len

#define lifc_len   ifc_len

Definition at line 207 of file discover.c.

◆ lifc_req

#define lifc_req   ifc_req

Definition at line 209 of file discover.c.

◆ LIFCONF

#define LIFCONF   ifconf

Definition at line 203 of file discover.c.

◆ lifr_addr

#define lifr_addr   ifr_addr

Definition at line 205 of file discover.c.

◆ lifr_flags

#define lifr_flags   ifr_flags

Definition at line 206 of file discover.c.

◆ lifr_name

#define lifr_name   ifr_name

Definition at line 204 of file discover.c.

◆ LIFREQ

#define LIFREQ   ifreq

Definition at line 202 of file discover.c.

◆ SIOCGLIFCONF

#define SIOCGLIFCONF   SIOCGIFCONF

Definition at line 200 of file discover.c.

◆ SIOCGLIFFLAGS

#define SIOCGLIFFLAGS   SIOCGIFFLAGS

Definition at line 201 of file discover.c.

Function Documentation

◆ add_ipv4_addr_to_interface()

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

Definition at line 492 of file discover.c.

◆ begin_iface_scan()

int begin_iface_scan ( struct iface_conf_list * ifaces)

Definition at line 251 of file discover.c.

◆ dhcp_interface_create()

isc_result_t dhcp_interface_create ( omapi_object_t ** lp,
omapi_object_t * id )

Definition at line 1453 of file discover.c.

◆ dhcp_interface_destroy()

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

Definition at line 1270 of file discover.c.

◆ dhcp_interface_get_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 )

Definition at line 1262 of file discover.c.

◆ dhcp_interface_lookup()

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

Definition at line 1369 of file discover.c.

◆ dhcp_interface_remove()

isc_result_t dhcp_interface_remove ( omapi_object_t * lp,
omapi_object_t * id )

Definition at line 1469 of file discover.c.

◆ dhcp_interface_set_value()

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 1225 of file discover.c.

◆ dhcp_interface_signal_handler()

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

Definition at line 1299 of file discover.c.

◆ dhcp_interface_stuff_values()

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

Definition at line 1335 of file discover.c.

◆ discover_interfaces()

void discover_interfaces ( int state)

Definition at line 571 of file discover.c.

◆ end_iface_scan()

void end_iface_scan ( struct iface_conf_list * ifaces)

Definition at line 382 of file discover.c.

◆ got_one()

isc_result_t got_one ( omapi_object_t * h)

Definition at line 1093 of file discover.c.

◆ if_readsocket()

int if_readsocket ( omapi_object_t * h)

Definition at line 1048 of file discover.c.

◆ interface_initialize()

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

Definition at line 133 of file discover.c.

◆ interface_setup()

isc_result_t interface_setup ( void )

Definition at line 95 of file discover.c.

◆ interface_snorf()

void interface_snorf ( struct interface_info * tmp,
int ir )

Definition at line 1574 of file discover.c.

◆ interface_stash()

void interface_stash ( struct interface_info * tptr)

Definition at line 1531 of file discover.c.

◆ next_iface()

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

Definition at line 315 of file discover.c.

◆ reinitialize_interfaces()

void reinitialize_interfaces ( void )

Definition at line 1078 of file discover.c.

◆ setup_fallback()

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

Definition at line 1059 of file discover.c.

Variable Documentation

◆ bootp_packet_handler

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

Definition at line 70 of file discover.c.

◆ dhcp_interface_discovery_hook

int(* dhcp_interface_discovery_hook) (struct interface_info *) ( struct interface_info * )

Definition at line 53 of file discover.c.

◆ dhcp_interface_setup_hook

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

Definition at line 52 of file discover.c.

◆ dhcp_interface_shutdown_hook

int(* dhcp_interface_shutdown_hook) (struct interface_info *) ( struct interface_info * )

Definition at line 55 of file discover.c.

◆ dhcp_interface_startup_hook

isc_result_t(* dhcp_interface_startup_hook) (struct interface_info *) ( struct interface_info * )

Definition at line 54 of file discover.c.

◆ dhcp_type_interface

omapi_object_type_t* dhcp_type_interface

Definition at line 83 of file discover.c.

◆ dhcpv4_over_dhcpv6

int dhcpv4_over_dhcpv6 = 0

Definition at line 51 of file discover.c.

◆ dummy_interfaces

struct interface_info* dummy_interfaces = 0

Definition at line 43 of file discover.c.

◆ fallback_interface

struct interface_info* fallback_interface = 0

Definition at line 44 of file discover.c.

◆ interface_count

int interface_count

Definition at line 90 of file discover.c.

◆ interface_max

int interface_max

Definition at line 91 of file discover.c.

◆ interface_vector

struct interface_info** interface_vector

Definition at line 89 of file discover.c.

◆ interfaces

struct interface_info* interfaces = 0

Definition at line 42 of file discover.c.

◆ interfaces_invalidated

int interfaces_invalidated

Definition at line 46 of file discover.c.

◆ limited_broadcast

struct in_addr limited_broadcast

Definition at line 57 of file discover.c.

◆ local_address

struct in_addr local_address

Definition at line 60 of file discover.c.

◆ local_family

int local_family = AF_INET

Definition at line 59 of file discover.c.

◆ local_port

u_int16_t local_port = 0

Definition at line 48 of file discover.c.

◆ quiet_interface_discovery

int quiet_interface_discovery

Definition at line 47 of file discover.c.

◆ relay_port

u_int16_t relay_port = 0

Definition at line 50 of file discover.c.

◆ remote_port

u_int16_t remote_port = 0

Definition at line 49 of file discover.c.