[ovs-dev] [PATCH 02/11] netlink-socket: Use recvmmsg() with kernels since 2.6.32.
Jarno Rajahalme
jarno.rajahalme at nsn.com
Mon Feb 11 14:46:18 UTC 2013
Signed-off-by: Jarno Rajahalme <jarno.rajahalme at nsn.com>
---
lib/netlink-socket.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/lib/netlink-socket.c b/lib/netlink-socket.c
index 361cb87..606f50b 100644
--- a/lib/netlink-socket.c
+++ b/lib/netlink-socket.c
@@ -426,6 +426,12 @@ nl_sock_recvm__(struct nl_sock *sock, struct mmsghdr mmsg[], int *n_msgs,
{
ssize_t retval;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
+ do {
+ retval = recvmmsg(sock->fd, mmsg, *n_msgs,
+ wait ? MSG_WAITFORONE : MSG_DONTWAIT, NULL);
+ } while (retval < 0 && errno == EINTR);
+#else
int n = 0;
retval = EAGAIN;
for (n = 0; n < *n_msgs; ++n) {
@@ -440,6 +446,7 @@ nl_sock_recvm__(struct nl_sock *sock, struct mmsghdr mmsg[], int *n_msgs,
if (n > 0) {
retval = n;
}
+#endif
if (retval < 0) {
int error = errno;
--
1.7.10.4
More information about the dev
mailing list