causes EOF. Seems like a kernel bug. Ignoring it seems to work be the best we
can do for now...
See https://bugs.freedesktop.org/show_bug.cgi?id=88397
log_debug("rtnl: no data in socket");
return (errno == EAGAIN || errno == EINTR) ? 0 : -errno;
log_debug("rtnl: no data in socket");
return (errno == EAGAIN || errno == EINTR) ? 0 : -errno;
- } else if (r == 0)
- /* connection was closed by the kernel */
- return -ECONNRESET;
+ } else if (r == 0) {
+ /* connection was closed by the kernel? */
+ log_warning("rtnl: ignoring empty message");
+ return 0;
+ }
for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
if (cmsg->cmsg_level == SOL_SOCKET &&
for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
if (cmsg->cmsg_level == SOL_SOCKET &&