From 6b7c12fdc1d3a08a934b29109fa6ffac6b45ebe0 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 11 Jan 2011 16:05:37 -0800 Subject: [PATCH] netlink-socket: New function for draining the receive buffer. This will be used in an upcoming patch. Reviewed by Justin Pettit. --- lib/netlink-socket.c | 8 ++++++++ lib/netlink-socket.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/lib/netlink-socket.c b/lib/netlink-socket.c index 8e81da9c..9e3dd977 100644 --- a/lib/netlink-socket.c +++ b/lib/netlink-socket.c @@ -28,6 +28,7 @@ #include "netlink-protocol.h" #include "ofpbuf.h" #include "poll-loop.h" +#include "socket-util.h" #include "stress.h" #include "vlog.h" @@ -446,6 +447,13 @@ recv: return 0; } +/* Drain all the messages currently in 'sock''s receive queue. */ +int +nl_sock_drain(struct nl_sock *sock) +{ + return drain_rcvbuf(sock->fd); +} + /* Starts a Netlink "dump" operation, by sending 'request' to the kernel via * 'sock', and initializes 'dump' to reflect the state of the operation. * diff --git a/lib/netlink-socket.h b/lib/netlink-socket.h index ad06d811..6ed48805 100644 --- a/lib/netlink-socket.h +++ b/lib/netlink-socket.h @@ -58,6 +58,8 @@ int nl_sock_recv(struct nl_sock *, struct ofpbuf **, bool wait); int nl_sock_transact(struct nl_sock *, const struct ofpbuf *request, struct ofpbuf **reply); +int nl_sock_drain(struct nl_sock *); + void nl_sock_wait(const struct nl_sock *, short int events); /* Table dumping. */ -- 2.30.2