From 2bae91e7697dfcaee7e250c813715fc4051ac51a Mon Sep 17 00:00:00 2001 From: Jonathan Marler Date: Sat, 30 May 2020 09:56:52 -0600 Subject: [PATCH] convert getaddrinfo rc to enum before switching on it --- lib/std/net.zig | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/std/net.zig b/lib/std/net.zig index 1c57f07c15..f60bc74925 100644 --- a/lib/std/net.zig +++ b/lib/std/net.zig @@ -454,19 +454,17 @@ pub fn getAddressList(allocator: *mem.Allocator, name: []const u8, port: u16) !* const rc = sys.getaddrinfo(name_c.ptr, @ptrCast([*:0]const u8, port_c.ptr), &hints, &res); if (builtin.os.tag == .windows) { const ws2_32 = os.windows.ws2_32; - switch (rc) { - 0 => {}, - @enumToInt(ws2_32.WinsockError.WSATRY_AGAIN) => return error.TemporaryNameServerFailure, - @enumToInt(ws2_32.WinsockError.WSANO_RECOVERY) => return error.NameServerFailure, - @enumToInt(ws2_32.WinsockError.WSAEAFNOSUPPORT) => return error.AddressFamilyNotSupported, - @enumToInt(ws2_32.WinsockError.WSA_NOT_ENOUGH_MEMORY) => return error.OutOfMemory, - @enumToInt(ws2_32.WinsockError.WSAHOST_NOT_FOUND) => return error.UnknownHostName, - @enumToInt(ws2_32.WinsockError.WSATYPE_NOT_FOUND) => return error.ServiceUnavailable, - @enumToInt(ws2_32.WinsockError.WSAEINVAL) => unreachable, - @enumToInt(ws2_32.WinsockError.WSAESOCKTNOSUPPORT) => unreachable, - else => |err| return os.windows.unexpectedWSAError( - std.meta.intToEnum(ws2_32.WinsockError, err) catch unreachable), - } + if (rc != 0) switch (@intToEnum(os.windows.ws2_32.WinsockError, @intCast(u16, rc))) { + .WSATRY_AGAIN => return error.TemporaryNameServerFailure, + .WSANO_RECOVERY => return error.NameServerFailure, + .WSAEAFNOSUPPORT => return error.AddressFamilyNotSupported, + .WSA_NOT_ENOUGH_MEMORY => return error.OutOfMemory, + .WSAHOST_NOT_FOUND => return error.UnknownHostName, + .WSATYPE_NOT_FOUND => return error.ServiceUnavailable, + .WSAEINVAL => unreachable, + .WSAESOCKTNOSUPPORT => unreachable, + else => |err| return os.windows.unexpectedWSAError(err), + }; } else { switch (rc) { @intToEnum(sys.EAI, 0) => {},