From aee49b2a89b6b323c80dd3b431bd486e51f94c8c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 8 Feb 2018 12:36:22 +1100 Subject: [PATCH] Set SO_REUSEADDR in regression test netcat. Sometimes multiplex tests fail on Solaris with "netcat: local_listen: Address already in use" which is likely due to previous invocations leaving the port in TIME_WAIT. Set SO_REUSEADDR (in addition to SO_REUSEPORT which is alread set on platforms that support it). ok djm@ --- regress/netcat.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/regress/netcat.c b/regress/netcat.c index 98a08b1ec..56bd09de5 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -738,7 +738,12 @@ local_listen(char *host, char *port, struct addrinfo hints) #ifdef SO_REUSEPORT ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x)); if (ret == -1) - err(1, "setsockopt"); + err(1, "setsockopt SO_REUSEPORT"); +#endif +#ifdef SO_REUSEADDR + ret = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &x, sizeof(x)); + if (ret == -1) + err(1, "setsockopt SO_REUSEADDR"); #endif set_common_sockopts(s);