From: Ben Pfaff Date: Wed, 12 Jan 2011 00:05:37 +0000 (-0800) Subject: netlink-socket: New function for draining the receive buffer. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6b7c12fdc1d3a08a934b29109fa6ffac6b45ebe0;p=openvswitch netlink-socket: New function for draining the receive buffer. This will be used in an upcoming patch. Reviewed by Justin Pettit. --- 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. */