zig

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

commit 56220449abcbbb0e308e0eadeb2e0e7c8a9e4cba (tree)
parent edea7a46e5484e30c338699207c8f4b4d8370c97
Author: Nameless <truemedian@gmail.com>
Date:   Fri, 19 Jun 2020 18:25:22 -0500

Add errors to windows.WSAStartup and WSACleanup
Diffstat:
Mlib/std/os/windows.zig | 11++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig @@ -901,7 +901,13 @@ pub fn WSAStartup(majorVersion: u8, minorVersion: u8) !ws2_32.WSADATA { var wsadata: ws2_32.WSADATA = undefined; return switch (ws2_32.WSAStartup((@as(WORD, minorVersion) << 8) | majorVersion, &wsadata)) { 0 => wsadata, - else => |err| unexpectedWSAError(@intToEnum(ws2_32.WinsockError, @intCast(u16, err))), + else => |err_int| switch (@intToEnum(ws2_32.WinsockError, @intCast(u16, err_int))) { + .WSASYSNOTREADY => return error.SystemNotAvailable, + .WSAVERNOTSUPPORTED => return error.VersionNotSupported, + .WSAEINPROGRESS => return error.BlockingOperationInProgress, + .WSAEPROCLIM => return error.SystemResources, + else => |err| return unexpectedWSAError(err), + }, }; } @@ -909,6 +915,9 @@ pub fn WSACleanup() !void { return switch (ws2_32.WSACleanup()) { 0 => {}, ws2_32.SOCKET_ERROR => switch (ws2_32.WSAGetLastError()) { + .WSANOTINITIALISED => return error.NotInitialized, + .WSAENETDOWN => return error.NetworkNotAvailable, + .WSAEINPROGRESS => return error.BlockingOperationInProgress, else => |err| return unexpectedWSAError(err), }, else => unreachable,