/******************************************************************
*
-* Copyright 2014 Samsung Electronics All Rights Reserved.
+* Copyright 2016 Samsung Electronics All Rights Reserved.
*
*
*
*
******************************************************************/
-#include "ifaddrs.h"
+#include "caifaddrs.h"
#include <stdbool.h>
#include <string.h>
while (1)
{
char recvBuf[NETLINK_MESSAGE_LENGTH] = {0};
- int len = recv(netlinkFd, recvBuf, sizeof(recvBuf), 0);
- struct nlmsghdr *recvMsg = (struct nlmsghdr*)recvBuf;
+ struct nlmsghdr *recvMsg = NULL;
struct ifaddrs *node = NULL;
- for (; NLMSG_OK(recvMsg, len); recvMsg = NLMSG_NEXT(recvMsg, len))
+ struct sockaddr_nl sa = { .nl_family = 0 };
+ struct iovec iov = { .iov_base = recvBuf,
+ .iov_len = sizeof (recvBuf) };
+
+ struct msghdr msg = { .msg_name = (void *)&sa,
+ .msg_namelen = sizeof (sa),
+ .msg_iov = &iov,
+ .msg_iovlen = 1 };
+
+ ssize_t len = recvmsg(netlinkFd, &msg, 0);
+
+ for (recvMsg = (struct nlmsghdr *)recvBuf; NLMSG_OK(recvMsg, len);
+ recvMsg = NLMSG_NEXT(recvMsg, len))
{
switch (recvMsg->nlmsg_type)
{
return CA_SOCKET_OPERATION_FAILED;
}
return CA_STATUS_OK;
-}
\ No newline at end of file
+}
#include "oic_malloc.h"
#include "oic_string.h"
#include "org_iotivity_ca_CaIpInterface.h"
-#include "ifaddrs.h"
+#include "caifaddrs.h"
#define TAG "OIC_CA_IP_MONITOR"
#define NETLINK_MESSAGE_LENGTH (4096)
.msg_iov = &iov,
.msg_iovlen = 1 };
- size_t len = recvmsg(caglobals.ip.netlinkFd, &msg, 0);
+ ssize_t len = recvmsg(caglobals.ip.netlinkFd, &msg, 0);
return NULL;
}
.msg_iov = &iov,
.msg_iovlen = 1 };
- size_t len = recvmsg(caglobals.ip.netlinkFd, &msg, 0);
+ ssize_t len = recvmsg(caglobals.ip.netlinkFd, &msg, 0);
for (nh = (struct nlmsghdr *)buf; NLMSG_OK(nh, len); nh = NLMSG_NEXT(nh, len))
{
.msg_iov = &iov,
.msg_iovlen = 1 };
- size_t len = recvmsg(caglobals.ip.netlinkFd, &msg, 0);
+ ssize_t len = recvmsg(caglobals.ip.netlinkFd, &msg, 0);
for (struct nlmsghdr *nh = (struct nlmsghdr *)buf; NLMSG_OK(nh, len); nh = NLMSG_NEXT(nh, len))
{