Skip to content

Commit abdd979

Browse files
matttbeintel-lab-lkp
authored andcommitted
mptcp: SO_KEEPALIVE: fix getsockopt support
SO_KEEPALIVE support has to be set on each subflow: on each TCP socket, where sk_prot->keepalive is defined. Technically, nothing has to be done on the MPTCP socket. That's why mptcp_sol_socket_sync_intval() was called instead of mptcp_sol_socket_intval(). Except that when nothing is done on the MPTCP socket, the getsockopt(SO_KEEPALIVE), handled in net/core/sock.c:sk_getsockopt(), will not know if SO_KEEPALIVE has been set on the different subflows or not. The fix is simple: simply call mptcp_sol_socket_intval() which will end up calling net/core/sock.c:sk_setsockopt() where the SOCK_KEEPOPEN flag will be set, the one used in sk_getsockopt(). So now, getsockopt(SO_KEEPALIVE) on an MPTCP socket will return the same value as the one previously set with setsockopt(SO_KEEPALIVE). Fixes: 1b3e7ed ("mptcp: setsockopt: handle SO_KEEPALIVE and SO_PRIORITY") Acked-by: Paolo Abeni <[email protected]> Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
1 parent 383eed2 commit abdd979

File tree

1 file changed

+0
-2
lines changed

1 file changed

+0
-2
lines changed

net/mptcp/sockopt.c

-2
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,6 @@ static int mptcp_setsockopt_sol_socket_int(struct mptcp_sock *msk, int optname,
181181

182182
switch (optname) {
183183
case SO_KEEPALIVE:
184-
mptcp_sol_socket_sync_intval(msk, optname, val);
185-
return 0;
186184
case SO_DEBUG:
187185
case SO_MARK:
188186
case SO_PRIORITY:

0 commit comments

Comments
 (0)