mptcp: implement dummy MSG_ERRQUEUE support
authorPaolo Abeni <pabeni@redhat.com>
Fri, 23 Apr 2021 18:17:05 +0000 (11:17 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Apr 2021 21:06:32 +0000 (14:06 -0700)
mptcp_recvmsg() currently silently ignores MSG_ERRQUEUE, returning
input data instead of error cmsg.

This change provides a dummy implementation for MSG_ERRQUEUE - always
returns no data. That is consistent with the current lack of a suitable
IP_RECVERR setsockopt() support.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/protocol.c

index c14ac29..1d5f23b 100644 (file)
@@ -1945,6 +1945,10 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
        int target;
        long timeo;
 
+       /* MSG_ERRQUEUE is really a no-op till we support IP_RECVERR */
+       if (unlikely(flags & MSG_ERRQUEUE))
+               return inet_recv_error(sk, msg, len, addr_len);
+
        if (msg->msg_flags & ~(MSG_WAITALL | MSG_DONTWAIT))
                return -EOPNOTSUPP;