selftest: mptcp: exit from copyfd_io_poll() when receive SIGUSR1
authorMenglong Dong <imagedong@tencent.com>
Fri, 6 Jan 2023 18:57:24 +0000 (10:57 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Jan 2023 07:30:50 +0000 (07:30 +0000)
For now, mptcp_connect won't exit after receiving the 'SIGUSR1' signal
if '-r' is set. Fix this by skipping poll and sleep in copyfd_io_poll()
if 'quit' is set.

Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Menglong Dong <imagedong@tencent.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/mptcp/mptcp_connect.c

index 8a82669..b25a314 100644 (file)
@@ -627,7 +627,7 @@ static int copyfd_io_poll(int infd, int peerfd, int outfd,
                char rbuf[8192];
                ssize_t len;
 
-               if (fds.events == 0)
+               if (fds.events == 0 || quit)
                        break;
 
                switch (poll(&fds, 1, poll_timeout)) {
@@ -733,7 +733,7 @@ static int copyfd_io_poll(int infd, int peerfd, int outfd,
        }
 
        /* leave some time for late join/announce */
-       if (cfg_remove)
+       if (cfg_remove && !quit)
                usleep(cfg_wait);
 
        return 0;