ipv6 listen support

This commit is contained in:
Adam D. Ruppe 2023-07-31 12:21:18 -04:00
parent 02e0960b7b
commit 5ebac83a0e
1 changed files with 4 additions and 3 deletions

7
cgi.d
View File

@ -5809,17 +5809,18 @@ Socket startListening(string host, ushort port, ref bool tcp, ref void delegate(
throw new Exception("abstract unix sockets not supported on this system"); throw new Exception("abstract unix sockets not supported on this system");
} }
} else { } else {
auto address = host.length ? parseAddress(host, port) : new InternetAddress(port);
version(cgi_use_fiber) { version(cgi_use_fiber) {
version(Windows) version(Windows)
listener = new PseudoblockingOverlappedSocket(AddressFamily.INET, SocketType.STREAM); listener = new PseudoblockingOverlappedSocket(AddressFamily.INET, SocketType.STREAM);
else else
listener = new TcpSocket(); listener = new Socket(address.addressFamily, SocketType.STREAM);
} else { } else {
listener = new TcpSocket(); listener = new Socket(address.addressFamily, SocketType.STREAM);
} }
cloexec(listener); cloexec(listener);
listener.setOption(SocketOptionLevel.SOCKET, SocketOption.REUSEADDR, true); listener.setOption(SocketOptionLevel.SOCKET, SocketOption.REUSEADDR, true);
listener.bind(host.length ? parseAddress(host, port) : new InternetAddress(port)); listener.bind(address);
cleanup = delegate() { cleanup = delegate() {
listener.close(); listener.close();
}; };