diff --git a/dhtest.c b/dhtest.c index f84cd19..70639cf 100644 --- a/dhtest.c +++ b/dhtest.c @@ -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) diff --git a/functions.c b/functions.c index e4e7847..9b99711 100644 --- a/functions.c +++ b/functions.c @@ -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); diff --git a/headers.h b/headers.h index 9727ddf..c6e9ae6 100644 --- a/headers.h +++ b/headers.h @@ -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;