diff --git a/lib/std/os.zig b/lib/std/os.zig index 43aa6a9b52..e4ac38051e 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -2995,6 +2995,8 @@ pub const ReadLinkError = error{ /// Windows-only. This error may occur if the opened reparse point is /// of unsupported type. UnsupportedReparsePointType, + /// On Windows, `\\server` or `\\server\share` was not found. + NetworkNotFound, } || UnexpectedError; /// Read value of a symbolic link. diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index d0ea558a45..9fa00c6eda 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -803,6 +803,7 @@ pub fn CreateSymbolicLink( pub const ReadLinkError = error{ FileNotFound, + NetworkNotFound, AccessDenied, Unexpected, NameTooLong, @@ -850,9 +851,8 @@ pub fn ReadLink(dir: ?HANDLE, sub_path_w: []const u16, out_buffer: []u8) ReadLin .OBJECT_NAME_NOT_FOUND => return error.FileNotFound, .OBJECT_PATH_NOT_FOUND => return error.FileNotFound, .NO_MEDIA_IN_DEVICE => return error.FileNotFound, - // TODO: Should BAD_NETWORK_* be translated to a different error? - .BAD_NETWORK_PATH => return error.FileNotFound, // \\server was not found - .BAD_NETWORK_NAME => return error.FileNotFound, // \\server was found but \\server\share wasn't + .BAD_NETWORK_PATH => return error.NetworkNotFound, // \\server was not found + .BAD_NETWORK_NAME => return error.NetworkNotFound, // \\server was found but \\server\share wasn't .INVALID_PARAMETER => unreachable, .SHARING_VIOLATION => return error.AccessDenied, .ACCESS_DENIED => return error.AccessDenied, diff --git a/lib/std/zig/system/NativeTargetInfo.zig b/lib/std/zig/system/NativeTargetInfo.zig index 99a1a8f2ef..9f0892c800 100644 --- a/lib/std/zig/system/NativeTargetInfo.zig +++ b/lib/std/zig/system/NativeTargetInfo.zig @@ -833,6 +833,7 @@ pub fn abiAndDynamicLinkerFromFile( error.InvalidUtf8 => unreachable, // Windows only error.BadPathName => unreachable, // Windows only error.UnsupportedReparsePointType => unreachable, // Windows only + error.NetworkNotFound => unreachable, // Windows only error.AccessDenied, error.FileNotFound,