int util_recover_arp_sock(inm_util_arp_data_s *arp_data)
{
- char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
- if (arp_data->sock >= 0) {
- close(arp_data->sock);
- arp_data->sock = -1;
- }
+ __INM_FUNC_ENTER__;
+ util_destroy_arp_sock(arp_data);
/* reopen socket */
- if ((arp_data->sock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ARP))) == -1) {
- INM_LOGI("socket %d", arp_data->sock);
- strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
- INM_LOGE("socket Failed. Error = %s\n", error_buf);
- }
-
+ util_create_arp_sock(arp_data);
return arp_data->sock;
}