Fix flushing of large number of entries
Checking for errors would cause some responses to be lost.
diff --git a/lib/libnetlink.c b/lib/libnetlink.c
index 5ae64f7..b68e2fd 100644
--- a/lib/libnetlink.c
+++ b/lib/libnetlink.c
@@ -121,8 +121,8 @@
if (status < 0)
return status;
- /* Check for errors */
- status = recv(rth->fd, resp, sizeof(resp), MSG_DONTWAIT);
+ /* Check for immediate errors */
+ status = recv(rth->fd, resp, sizeof(resp), MSG_DONTWAIT|MSG_PEEK);
if (status < 0) {
if (errno == EAGAIN)
return 0;