On 10/30/25 7:04 AM, Alexis Lothoré wrote:
+       int family = cfg->ipproto == 6 ? AF_INET6 : AF_INET;
+
+       cfg->server_fd = start_reuseport_server(family, SOCK_STREAM,
+                                               cfg->server_addr, TEST_PORT,
+                                               TIMEOUT_MS, 1);

Why reuseport is needed? Does it have issue in bind() to the same
ip/port in the later sub-test?

Yes, I observed that is I use the bare start_server, I systematically have
the first test passing, an all the others failing on the server startup
with errno 98 (Address already in use). I have been assuming that it is due
to some TIME_WAIT state on the freshly closed socket, but I may be missing
something ?

Thanks for confirming. You are right. It should be the TIME_WAIT. Using SO_REUSEPORT works but become confusing on what the test is trying to do by starting only 1 reuseport server. reuseport is usually used with >1 server listening on the same address. A better thing to do is to always setsockopt(SO_REUSEADDR) in start_server_addr for TCP.

Reply via email to