Apparently unix sockets are supported on Windows

Starting from Windows 10 build 17063.
This commit is contained in:
LemonBoy 2020-11-22 10:29:45 +01:00
parent d0beb4badb
commit 34720da3d0
2 changed files with 14 additions and 1 deletions

View File

@ -12,7 +12,11 @@ const os = std.os;
const fs = std.fs;
const io = std.io;
pub const has_unix_sockets = @hasDecl(os, "sockaddr_un");
// Windows 10 added support for unix sockets in build 17063, redstone 4 is the
// first release to support them.
pub const has_unix_sockets = @hasDecl(os, "sockaddr_un") and
(builtin.os.tag != .windows or
std.Target.current.os.version_range.windows.isAtLeast(.win10_rs4) orelse false);
pub const Address = extern union {
any: os.sockaddr,

View File

@ -258,6 +258,15 @@ test "listen on a unix socket, send bytes, receive bytes" {
if (builtin.single_threaded) return error.SkipZigTest;
if (!net.has_unix_sockets) return error.SkipZigTest;
if (std.builtin.os.tag == .windows) {
_ = try std.os.windows.WSAStartup(2, 2);
}
defer {
if (std.builtin.os.tag == .windows) {
std.os.windows.WSACleanup() catch unreachable;
}
}
var server = net.StreamServer.init(.{});
defer server.deinit();