From 0d46edd0bb21e872a2ed42db10b6f1138f64dbe8 Mon Sep 17 00:00:00 2001 From: Olivier Cochard Date: Fri, 25 Sep 2020 16:02:13 +0000 Subject: [PATCH] Enable SO_LINGER to the so_reuseport_lb_test regression tests, preventing many sockets in TIME_WAIT state at the end of the test. PR: 249885 Reviewed by: markj Approved by: markj Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D26549 --- tests/sys/netinet/so_reuseport_lb_test.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/sys/netinet/so_reuseport_lb_test.c b/tests/sys/netinet/so_reuseport_lb_test.c index f3fc36f8e048..89014b3597ee 100644 --- a/tests/sys/netinet/so_reuseport_lb_test.c +++ b/tests/sys/netinet/so_reuseport_lb_test.c @@ -54,6 +54,7 @@ lb_simple_accept_loop(int domain, const struct sockaddr *addr, int sds[], size_t i; int *acceptcnt; int csd, error, excnt, sd; + const struct linger lopt = { 1, 0 }; /* * We expect each listening socket to accept roughly nconns/nsds @@ -73,6 +74,10 @@ lb_simple_accept_loop(int domain, const struct sockaddr *addr, int sds[], ATF_REQUIRE_MSG(error == 0, "connect() failed: %s", strerror(errno)); + error = setsockopt(sd, SOL_SOCKET, SO_LINGER, &lopt, sizeof(lopt)); + ATF_REQUIRE_MSG(error == 0, "Setting linger failed: %s", + strerror(errno)); + /* * Poll the listening sockets. */