From: Tom Gundersen Date: Mon, 29 Dec 2014 00:49:06 +0000 (+0100) Subject: sd-rtnl: recv_message - don't fail on interrupt X-Git-Tag: v219~777 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=0b2bbbdf2f77d685a12862b96e764ac5f1ef8046 sd-rtnl: recv_message - don't fail on interrupt We should just try again instead. --- diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c index cfb2af314..92f318267 100644 --- a/src/libsystemd/sd-rtnl/rtnl-message.c +++ b/src/libsystemd/sd-rtnl/rtnl-message.c @@ -1348,8 +1348,10 @@ static int socket_recv_message(int fd, struct iovec *iov, uint32_t *_group, bool /* no data */ if (errno == ENOBUFS) log_debug("rtnl: kernel receive buffer overrun"); + else if (errno == EAGAIN) + log_debug("rtnl: no data in socket"); - return (errno == EAGAIN) ? 0 : -errno; + return (errno == EAGAIN || errno == EINTR) ? 0 : -errno; } else if (r == 0) /* connection was closed by the kernel */ return -ECONNRESET;