summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysdep/linux/netlink.c1
-rw-r--r--sysdep/unix/io.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
index 368e0ef9..22313f43 100644
--- a/sysdep/linux/netlink.c
+++ b/sysdep/linux/netlink.c
@@ -1497,6 +1497,7 @@ nl_async_hook(sock *sk, uint size UNUSED)
* One day we might react to it by asking for route table
* scan in near future.
*/
+ log(L_WARN "Kernel dropped some netlink messages, will resync on next scan.");
return 1; /* More data are likely to be ready */
}
else if (errno != EWOULDBLOCK)
diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c
index 644a4fcd..8773f4c4 100644
--- a/sysdep/unix/io.c
+++ b/sysdep/unix/io.c
@@ -2238,7 +2238,8 @@ io_loop(void)
if (pfd[s->index].revents & (POLLHUP | POLLERR))
{
sk_err(s, pfd[s->index].revents);
- goto next2;
+ if (s != current_sock)
+ goto next2;
}
current_sock = sk_next(s);