icmp6-util: stop ignoring EAGAIN and EINTR in icmp6_receive
authorEvgeny Vereshchagin <evvers@ya.ru>
Mon, 1 Oct 2018 22:37:17 +0000 (22:37 +0000)
committerLennart Poettering <lennart@poettering.net>
Tue, 2 Oct 2018 10:58:07 +0000 (12:58 +0200)
The code handling the errors was originally part of ndisc_recv, which,
being an event handler, would be simply turned off if it returned a negative
error code. It's no longer necessary. Plus, it helps avoid passing
an uninitialized value to radv_send.

Closes https://github.com/systemd/systemd/issues/10223.

src/libsystemd-network/icmp6-util.c

index 736df22..8bee24e 100644 (file)
@@ -174,12 +174,8 @@ int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *dst,
         iov.iov_len = size;
 
         len = recvmsg(fd, &msg, MSG_DONTWAIT);
-        if (len < 0) {
-                if (IN_SET(errno, EAGAIN, EINTR))
-                        return 0;
-
+        if (len < 0)
                 return -errno;
-        }
 
         if ((size_t) len != size)
                 return -EINVAL;