mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-07-14 21:43:02 +02:00
selftests: mptcp: connect: catch IO errors on listen side
[ Upstream commit14e22b43df] IO errors were correctly printed to stderr, and propagated up to the main loop for the server side, but the returned value was ignored. As a consequence, the program for the listener side was no longer exiting with an error code in case of IO issues. Because of that, some issues might not have been seen. But very likely, most issues either had an effect on the client side, or the file transfer was not the expected one, e.g. the connection got reset before the end. Still, it is better to fix this. The main consequence of this issue is the error that was reported by the selftests: the received and sent files were different, and the MIB counters were not printed. Also, when such errors happened during the 'disconnect' tests, the program tried to continue until the timeout. Now when an IO error is detected, the program exits directly with an error. Fixes:05be5e273c("selftests: mptcp: add disconnect tests") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau <martineau@kernel.org> Reviewed-by: Geliang Tang <geliang@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Link: https://patch.msgid.link/20250912-net-mptcp-fix-sft-connect-v1-2-d40e77cbbf02@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f18be27224
commit
ff160500c4
@@ -1005,6 +1005,7 @@ int main_loop_s(int listensock)
|
||||
struct pollfd polls;
|
||||
socklen_t salen;
|
||||
int remotesock;
|
||||
int err = 0;
|
||||
int fd = 0;
|
||||
|
||||
again:
|
||||
@@ -1036,7 +1037,7 @@ again:
|
||||
|
||||
SOCK_TEST_TCPULP(remotesock, 0);
|
||||
|
||||
copyfd_io(fd, remotesock, 1, true);
|
||||
err = copyfd_io(fd, remotesock, 1, true, &winfo);
|
||||
} else {
|
||||
perror("accept");
|
||||
return 1;
|
||||
@@ -1045,10 +1046,10 @@ again:
|
||||
if (cfg_input)
|
||||
close(fd);
|
||||
|
||||
if (--cfg_repeat > 0)
|
||||
if (!err && --cfg_repeat > 0)
|
||||
goto again;
|
||||
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
static void init_rng(void)
|
||||
|
||||
Reference in New Issue
Block a user