Commit 1e777f39 authored by Dmytro Shytyi's avatar Dmytro Shytyi Committed by Jakub Kicinski
Browse files

mptcp: add MSG_FASTOPEN sendmsg flag support



Since commit 54f1944e ("mptcp: factor out mptcp_connect()"), all the
infrastructure is now in place to support the MSG_FASTOPEN flag, we
just need to call into the fastopen path in mptcp_sendmsg().

Co-developed-by: default avatarBenjamin Hesmans <benjamin.hesmans@tessares.net>
Signed-off-by: default avatarBenjamin Hesmans <benjamin.hesmans@tessares.net>
Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarDmytro Shytyi <dmytro@shytyi.net>
Signed-off-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent f2bb566f
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -1711,17 +1711,14 @@ static int mptcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
	int ret = 0;
	long timeo;

	/* we don't support FASTOPEN yet */
	if (msg->msg_flags & MSG_FASTOPEN)
		return -EOPNOTSUPP;

	/* silently ignore everything else */
	msg->msg_flags &= MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL;
	msg->msg_flags &= MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL | MSG_FASTOPEN;

	lock_sock(sk);

	ssock = __mptcp_nmpc_socket(msk);
	if (unlikely(ssock && inet_sk(ssock->sk)->defer_connect)) {
	if (unlikely(ssock && (inet_sk(ssock->sk)->defer_connect ||
			       msg->msg_flags & MSG_FASTOPEN))) {
		int copied_syn = 0;

		ret = mptcp_sendmsg_fastopen(sk, ssock->sk, msg, len, &copied_syn);