netlink-socket: New function for draining the receive buffer.
authorBen Pfaff <blp@nicira.com>
Wed, 12 Jan 2011 00:05:37 +0000 (16:05 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 27 Jan 2011 17:26:05 +0000 (09:26 -0800)
This will be used in an upcoming patch.

Reviewed by Justin Pettit.

lib/netlink-socket.c
lib/netlink-socket.h

index 8e81da9..9e3dd97 100644 (file)
@@ -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.
  *
index ad06d81..6ed4880 100644 (file)
@@ -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. */