From: Geliang Tang <tanggeliang@kylinos.cn>
Consolidate IP socket option logic with mptcp_setsockopt_first_sf_only()
- the common setsockopt handler for first subflow. This function applies
options (IP_TRANSPARENT, IP_BIND_ADDRESS_NO_PORT, IP_LOCAL_PORT_RANGE)
to the first subflow and synchronizes values to the MPTCP socket. Improves
code organization for future socket option implementations.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
net/mptcp/sockopt.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index 8017cbad0597..1ab3dbe5124e 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -703,8 +703,8 @@ static int __mptcp_setsockopt_sol_tcp_nodelay(struct mptcp_sock *msk, int val)
return 0;
}
-static int mptcp_setsockopt_sol_ip_set(struct mptcp_sock *msk, int optname,
- sockptr_t optval, unsigned int optlen)
+static int mptcp_setsockopt_sol_ip_first_sf_only(struct mptcp_sock *msk, int optname,
+ sockptr_t optval, unsigned int optlen)
{
struct sock *sk = (struct sock *)msk;
struct sock *ssk;
@@ -785,7 +785,7 @@ static int mptcp_setsockopt_v4(struct mptcp_sock *msk, int optname,
case IP_TRANSPARENT:
case IP_BIND_ADDRESS_NO_PORT:
case IP_LOCAL_PORT_RANGE:
- return mptcp_setsockopt_sol_ip_set(msk, optname, optval, optlen);
+ return mptcp_setsockopt_first_sf_only(msk, SOL_IP, optname, optval, optlen);
case IP_TOS:
return mptcp_setsockopt_v4_set_tos(msk, optname, optval, optlen);
}
@@ -826,6 +826,9 @@ static int mptcp_setsockopt_first_sf_only(struct mptcp_sock *msk, int level,
case SOL_SOCKET:
return mptcp_setsockopt_sol_socket_first_sf_only(msk, optname,
optval, optlen);
+ case SOL_IP:
+ return mptcp_setsockopt_sol_ip_first_sf_only(msk, optname,
+ optval, optlen);
}
return -EOPNOTSUPP;
--
2.48.1