diff options
| author | LemonBoy <thatlemon@gmail.com> | 2020-11-22 10:29:45 +0100 |
|---|---|---|
| committer | LemonBoy <thatlemon@gmail.com> | 2021-01-11 21:43:15 +0100 |
| commit | 34720da3d0a4a98383639cbedcbe1aa885217ed6 (patch) | |
| tree | 183937da172d8cacda17a88df9a479bf4f2403ee | |
| parent | d0beb4badb9064893133c996b05c0748317adf24 (diff) | |
| download | zig-34720da3d0a4a98383639cbedcbe1aa885217ed6.tar.gz zig-34720da3d0a4a98383639cbedcbe1aa885217ed6.zip | |
Apparently unix sockets are supported on Windows
Starting from Windows 10 build 17063.
| -rw-r--r-- | lib/std/net.zig | 6 | ||||
| -rw-r--r-- | lib/std/net/test.zig | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/std/net.zig b/lib/std/net.zig index 41da4a2c46..6fe2d1cd08 100644 --- a/lib/std/net.zig +++ b/lib/std/net.zig @@ -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, diff --git a/lib/std/net/test.zig b/lib/std/net/test.zig index 12eb7c6cb2..10a9c4e18b 100644 --- a/lib/std/net/test.zig +++ b/lib/std/net/test.zig @@ -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(); |
