better handling of interface name parameter

changes/54/3254/1
Richard Fuchs 12 years ago
parent d31db7873c
commit ff149a50cb

@ -41,7 +41,7 @@ u_char dhmac[ETHER_ADDR_LEN] = { 0 };
u_char dmac[ETHER_ADDR_LEN];
char dhmac_fname[20];
char iface_name[30] = { 0 };
char *iface_name = "eth0";
char ip_str[128];
u_int8_t dhmac_flag = 0;
u_int32_t server_id = { 0 }, option50_ip = { 0 };
@ -187,12 +187,7 @@ int main(int argc, char *argv[])
break;
case 'i':
iface = if_nametoindex(optarg);
if(iface == 0) {
fprintf(stdout, "Interface doesnot exist\n");
exit(2);
}
strncpy(iface_name, optarg, 29);
iface_name = optarg;
break;
case 'v':
@ -341,6 +336,11 @@ int main(int argc, char *argv[])
print_help(argv[0]);
exit(2);
}
iface = if_nametoindex(iface_name);
if(iface == 0) {
fprintf(stdout, "Interface %s does not exist\n", iface_name);
exit(2);
}
/* Opens the PF_PACKET socket */
if(open_socket() < 0) {
if (nagios_flag)

@ -68,9 +68,6 @@ int set_promisc()
{
int status;
struct ifreq ifr;
if(!strlen(iface_name)) {
strcpy(iface_name, "eth0");
}
strcpy(ifr.ifr_name, iface_name);
ifr.ifr_flags = (IFF_PROMISC | IFF_UP);
status = ioctl(sock_packet, SIOCSIFFLAGS, &ifr);
@ -109,9 +106,6 @@ u_int32_t get_interface_address()
int status;
struct ifreq ifr;
if(!strlen(iface_name)) {
strcpy(iface_name, "eth0");
}
strcpy(ifr.ifr_name, iface_name);
ifr.ifr_addr.sa_family = AF_INET;
status = ioctl(sock_packet, SIOCGIFADDR, &ifr);

@ -351,7 +351,7 @@ extern u_char dhmac[ETHER_ADDR_LEN];
extern u_char dmac[ETHER_ADDR_LEN];
extern char dhmac_fname[20];
extern char iface_name[30];
extern char *iface_name;
extern char ip_str[128];
extern u_int32_t server_id, option50_ip;
extern u_int8_t dhcp_release_flag;

Loading…
Cancel
Save