From 826d8b6ef636e8a0782307e8e4eb54acc352067f Mon Sep 17 00:00:00 2001 From: kuailexs <952415538@qq.com> Date: Sat, 21 Dec 2024 22:07:04 +0800 Subject: [PATCH] patch xtrans.diff --- Xtrans.c | 6 +++--- Xtranssock.c | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Xtrans.c b/Xtrans.c index bfba1ad..15e42be 100644 --- a/Xtrans.c +++ b/Xtrans.c @@ -1233,9 +1233,9 @@ TRANS(MakeAllCOTSServerListeners) (const char *port, int *partial, continue; } #if defined(IPv6) && defined(AF_INET6) - if ((Xtransports[i].transport_id == TRANS_SOCKET_INET_INDEX - && ipv6_succ)) - flags |= ADDR_IN_USE_ALLOWED; + // if ((Xtransports[i].transport_id == TRANS_SOCKET_INET_INDEX + // && ipv6_succ)) + // flags |= ADDR_IN_USE_ALLOWED; #endif if ((status = TRANS(CreateListener (ciptr, port, flags))) < 0) diff --git a/Xtranssock.c b/Xtranssock.c index d830e7c..ae1cca2 100644 --- a/Xtranssock.c +++ b/Xtranssock.c @@ -640,7 +640,7 @@ TRANS(SocketOpenCOTSServer) (Xtransport *thistrans, const char *protocol, * Using this prevents the bind() check for an existing server listening * on the same port, but it is required for other reasons. */ -#ifdef SO_REUSEADDR +#if 1 //#ifdef SO_REUSEADDR /* * SO_REUSEADDR only applied to AF_INET && AF_INET6 @@ -655,6 +655,8 @@ TRANS(SocketOpenCOTSServer) (Xtransport *thistrans, const char *protocol, int one = 1; setsockopt (ciptr->fd, SOL_SOCKET, SO_REUSEADDR, (char *) &one, sizeof (int)); + setsockopt (ciptr->fd, SOL_SOCKET, SO_REUSEPORT, + (char *) &one, sizeof (int)); } #endif #ifdef IPV6_V6ONLY