On Tue, 2025-11-18 at 12:01 +0800, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> Modify disconnect test scenarios to bypass TLS socket configuration
> since TLS setup can interfere with connection teardown validation.
> Add cfg_disconnect flag to control this behavior.
tls_disconnect() returning EOPNOTSUPP caused the MPTCP connect's
disconnect tests to fail:
static int tls_disconnect(struct sock *sk, int flags)
{
return -EOPNOTSUPP;
}
This patch can be dropped now that MPTCP support has been added to
tls_disconnect() like this:
static int tls_disconnect(struct sock *sk, int flags)
{
if (sk->sk_protocol == IPPROTO_MPTCP)
return mptcp_disconnect(sk, flags);
return -EOPNOTSUPP;
}
Thanks,
-Geliang
>
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
> tools/testing/selftests/net/mptcp/mptcp_connect.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.c
> b/tools/testing/selftests/net/mptcp/mptcp_connect.c
> index deafcff7a2c8..e43874610297 100644
> --- a/tools/testing/selftests/net/mptcp/mptcp_connect.c
> +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.c
> @@ -79,6 +79,7 @@ static char *cfg_input;
> static int cfg_repeat = 1;
> static int cfg_truncate;
> static int cfg_rcv_trunc;
> +static int cfg_disconnect = 0;
>
> struct cfg_cmsg_types {
> unsigned int cmsg_enabled:1;
> @@ -434,7 +435,7 @@ static int sock_connect_mptcp(const char * const
> remoteaddr,
> }
>
> freeaddrinfo(addr);
> - if (sock != -1)
> + if (sock != -1 && cfg_disconnect == 0)
> SOCK_TEST_TCPULP(sock, proto, is_mptcp(sock));
> return sock;
> }
> @@ -1381,7 +1382,9 @@ int main_loop(void)
> again:
> check_getpeername_connect(fd);
>
> - SOCK_TEST_TCPULP(fd, cfg_sock_proto, -1);
> + /* Don't let TLS break disconnect tests */
> + if (cfg_disconnect == 0)
> + SOCK_TEST_TCPULP(fd, cfg_sock_proto, -1);
>
> if (cfg_rcvbuf)
> set_rcvbuf(fd, cfg_rcvbuf);
> @@ -1540,6 +1543,7 @@ static void parse_opts(int argc, char **argv)
> break;
> case 'I':
> cfg_repeat = atoi(optarg);
> + cfg_disconnect = 1;
> break;
> case 'l':
> listen_mode = true;