try fix ipv6 (+1 squashed commits)

Squashed commits:

[8d95a639] try fix ipv6
This commit is contained in:
Concedo 2024-08-06 15:31:41 +08:00
parent 381b4a1844
commit 6b8b50b350
2 changed files with 78 additions and 5 deletions

View file

@ -2042,9 +2042,11 @@ def is_ipv6_supported():
try:
# Attempt to create an IPv6 socket
sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1)
sock.close()
return True
except socket.error:
except Exception as ex:
return False
def RunServerMultiThreaded(addr, port):
@ -2058,6 +2060,7 @@ def RunServerMultiThreaded(addr, port):
if is_ipv6_supported():
ipv6_sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
ipv6_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
ipv6_sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1)
if args.ssl and sslvalid:
import ssl
@ -2072,9 +2075,14 @@ def RunServerMultiThreaded(addr, port):
numThreads = 24
ipv4_sock.bind((addr, port))
ipv4_sock.listen(numThreads)
if ipv6_sock:
ipv6_sock.bind((addr, port))
ipv6_sock.listen(numThreads)
try:
ipv6_sock.bind((addr, port))
ipv6_sock.listen(numThreads)
except Exception as ex:
ipv6_sock = None
print("IPv6 Socket Failed to Bind. IPv6 will be unavailable.")
class Thread(threading.Thread):
def __init__(self, i):