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:
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,