• Eric Dumazet's avatar
    af_unix: MSG_TRUNC support for dgram sockets · 9f6f9af7
    Eric Dumazet authored
    Piergiorgio Beruto expressed the need to fetch size of first datagram in
    queue for AF_UNIX sockets and suggested a patch against SIOCINQ ioctl.
    
    I suggested instead to implement MSG_TRUNC support as a recv() input
    flag, as already done for RAW, UDP & NETLINK sockets.
    
    len = recv(fd, &byte, 1, MSG_PEEK | MSG_TRUNC);
    
    MSG_TRUNC asks recv() to return the real length of the packet, even when
    is was longer than the passed buffer.
    
    There is risk that a userland application used MSG_TRUNC by accident
    (since it had no effect on af_unix sockets) and this might break after
    this patch.
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Tested-by: default avatarPiergiorgio Beruto <piergiorgio.beruto@gmail.com>
    CC: Michael Kerrisk <mtk.manpages@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9f6f9af7
af_unix.c 55.9 KB