#include <coap/utlist.h>
#define TAG "OIC_CA_IP_MONITOR"
-
+#define MAX_INTERFACE_INFO_LENGTH (1024)
#define NETLINK_MESSAGE_LENGTH (4096)
#define IFC_LABEL_LOOP "lo"
#define IFC_ADDR_LOOP_IPV4 "127.0.0.1"
{
continue;
}
+
struct ifinfomsg *ifi = (struct ifinfomsg *)NLMSG_DATA(nh);
if (!ifi)
{
continue;
}
- int ifiIndex = ifi->ifi_index;
+ if (RTM_DELADDR == nh->nlmsg_type)
+ {
+ CloseMulticastSocket();
+ }
+ int ifiIndex = ifi->ifi_index;
iflist = CAIPGetInterfaceInformation(ifiIndex);
if (!iflist)
{
OIC_LOG_V(ERROR, TAG, "get interface info failed: %s", strerror(errno));
return NULL;
}
+ CreateMulticastSocket();
}
return iflist;
}