[LTP] [PATCH]utils/sctp: bugfix for testlib/sctputil.h

Li Min limin154@huawei.com
Fri Jul 21 09:18:31 CEST 2023


The socket is created and bound immediately without waiting for the handshake after close(sk).
"bind(): errno=EADDRINUSE(98): Address already in use" may be reported.
Use SO_REUSEPORT to allow multiple sockets to be bound to the same port.

Signed-off-by: Min Li <limin154@huawei.com>
---
 utils/sctp/testlib/sctputil.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/utils/sctp/testlib/sctputil.h b/utils/sctp/testlib/sctputil.h
index 176d623f0..b51a3f9b0 100644
--- a/utils/sctp/testlib/sctputil.h
+++ b/utils/sctp/testlib/sctputil.h
@@ -133,6 +133,15 @@ extern int TST_CNT;
 static inline int test_socket(int domain, int type, int protocol)
 {
 	int sk = socket(domain, type, protocol);
+	int true_const=1;
+
+	if(setsockopt(sk, SOL_SOCKET, SO_REUSEADDR, &true_const, sizeof(int))){
+		printf("set addr err\n");
+	}
+
+	if(setsockopt(sk, SOL_SOCKET, SO_REUSEPORT, &true_const, sizeof(int))){
+		printf("set port err\n");
+	}

 	if (sk == -1) {
 		if (errno == EAFNOSUPPORT)
--
2.33.0



More information about the ltp mailing list