zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 34720da3d0a4a98383639cbedcbe1aa885217ed6 (tree)
parent d0beb4badb9064893133c996b05c0748317adf24
Author: LemonBoy <thatlemon@gmail.com>
Date:   Sun, 22 Nov 2020 10:29:45 +0100

Apparently unix sockets are supported on Windows

Starting from Windows 10 build 17063.

Diffstat:
Mlib/std/net.zig | 6+++++-
Mlib/std/net/test.zig | 9+++++++++
2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 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 @@ -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();