exanic-software icon indicating copy to clipboard operation
exanic-software copied to clipboard

Broken recvmmsg

Open dnwrnr opened this issue 5 years ago • 0 comments

Implementation broken when using non-blocking sockets and/or MSG_DONTWAIT. Returns either error or 'vlen' worth of messages. Discarding any messages and returing when an error occurs.

https://man7.org/linux/man-pages/man2/recvmmsg.2.html

       If an error occurs after at least one message has been received, the
       call succeeds, and returns the number of messages received.  The
       error code is expected to be returned on a subsequent call to
       recvmmsg().  In the current implementation, however, the error code
       can be overwritten in the meantime by an unrelated network event on a
       socket, for example an incoming ICMP packet.

dnwrnr avatar Jul 07 '20 07:07 dnwrnr