[Dhcp-agent-commits] dhcp-agent dhcp-sniff.c,1.11,1.12
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2002-06-22 02:12:06
|
Update of /cvsroot/dhcp-agent/dhcp-agent In directory usw-pr-cvs1:/tmp/cvs-serv13997 Modified Files: dhcp-sniff.c Log Message: dhcpsniff now looks for availabel interfaces Index: dhcp-sniff.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-sniff.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** dhcp-sniff.c 22 Jun 2002 01:47:57 -0000 1.11 --- dhcp-sniff.c 22 Jun 2002 02:12:03 -0000 1.12 *************** *** 46,50 **** { int c; ! char *interface_name = "eth0"; rawnet_t *net; int retval; --- 46,50 ---- { int c; ! char *interface_name = NULL; rawnet_t *net; int retval; *************** *** 52,55 **** --- 52,56 ---- char filter_buff[GENERIC_BUFFSIZE]; print_packet p_packet = print_dhcp_packet_verbose; + list_t *available_interfaces; #if !defined(HAVE_PROGNAME) *************** *** 79,82 **** --- 80,98 ---- } + if(interface_name == NULL) { + + /* get the first available on. */ + available_interfaces = interface_get_active_interfaces(); + + if(available_interfaces != NULL) { + + interface_name = strdup(available_interfaces->data); + purge_list(available_interfaces, NULL); + + } else { + fatal_error("%s: could not find suitable interface.", getprogname()); + } + } + /* Get port numbers from services db. */ *************** *** 84,92 **** sport = port_for_service("bootpc", "udp"); ! if(dport == -1 || sport == -1) ! fatal_error("could not lookup dhcp services in service db: %s", strerror(errno)); ! dport = ntohs(dport); ! sport = ntohs(sport); snprintf(filter_buff, sizeof(filter_buff), "arp or icmp or (udp and (port %d or port %d))", dport, sport); --- 100,113 ---- sport = port_for_service("bootpc", "udp"); ! if(dport == -1 || sport == -1) { ! dport = BOOTP_CLIENT; ! sport = BOOTP_SERVER; ! ! } else { ! ! dport = ntohs(dport); ! sport = ntohs(sport); ! } snprintf(filter_buff, sizeof(filter_buff), "arp or icmp or (udp and (port %d or port %d))", dport, sport); |