diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2024-02-24 10:03:40 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-24 10:03:40 -0800 |
| commit | 6fddc9cd3d8002a44cf65e05d32c449bde6ca60c (patch) | |
| tree | 92c2e96c3a8462fb0659a878e789b907a34d9ffa /lib/std | |
| parent | 88b3c144265b0e22250f21809bbf9329ecfcfd6f (diff) | |
| parent | 9812bc7b10d093f2041471b166e67748665c89c7 (diff) | |
| download | zig-6fddc9cd3d8002a44cf65e05d32c449bde6ca60c.tar.gz zig-6fddc9cd3d8002a44cf65e05d32c449bde6ca60c.zip | |
Merge pull request #19064 from ziglang/fix-netname-deleted
std: map NETNAME_DELETED to error.ConnectionResetByPeer
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/http/test.zig | 11 | ||||
| -rw-r--r-- | lib/std/os.zig | 3 | ||||
| -rw-r--r-- | lib/std/os/windows.zig | 12 | ||||
| -rw-r--r-- | lib/std/zig/system.zig | 1 |
4 files changed, 19 insertions, 8 deletions
diff --git a/lib/std/http/test.zig b/lib/std/http/test.zig index e36b0cdf28..cfcfa5e5ac 100644 --- a/lib/std/http/test.zig +++ b/lib/std/http/test.zig @@ -142,6 +142,17 @@ test "HTTP server handles a chunked transfer coding request" { const stream = try std.net.tcpConnectToHost(gpa, "127.0.0.1", test_server.port()); defer stream.close(); try stream.writeAll(request_bytes); + + const response = try stream.reader().readAllAlloc(gpa, 100); + defer gpa.free(response); + + const expected_response = + "HTTP/1.1 200 OK\r\n" ++ + "content-length: 21\r\n" ++ + "content-type: text/plain\r\n" ++ + "\r\n" ++ + "message from server!\n"; + try expectEqualStrings(expected_response, response); } test "echo content server" { diff --git a/lib/std/os.zig b/lib/std/os.zig index 4d8e1cd6cc..a31a2d943c 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -836,9 +836,6 @@ pub const ReadError = error{ NotOpenForReading, SocketNotConnected, - // Windows only - NetNameDeleted, - /// This error occurs when no global event loop is configured, /// and reading from the file descriptor would block. WouldBlock, diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index ccbcba6883..1b4b13647b 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -453,7 +453,8 @@ pub fn FindClose(hFindFile: HANDLE) void { pub const ReadFileError = error{ BrokenPipe, - NetNameDeleted, + /// The specified network name is no longer available. + ConnectionResetByPeer, OperationAborted, Unexpected, }; @@ -485,7 +486,7 @@ pub fn ReadFile(in_hFile: HANDLE, buffer: []u8, offset: ?u64) ReadFileError!usiz .OPERATION_ABORTED => continue, .BROKEN_PIPE => return 0, .HANDLE_EOF => return 0, - .NETNAME_DELETED => return error.NetNameDeleted, + .NETNAME_DELETED => return error.ConnectionResetByPeer, else => |err| return unexpectedError(err), } } @@ -501,6 +502,8 @@ pub const WriteFileError = error{ /// The process cannot access the file because another process has locked /// a portion of the file. LockViolation, + /// The specified network name is no longer available. + ConnectionResetByPeer, Unexpected, }; @@ -517,8 +520,8 @@ pub fn WriteFile( .InternalHigh = 0, .DUMMYUNIONNAME = .{ .DUMMYSTRUCTNAME = .{ - .Offset = @as(u32, @truncate(off)), - .OffsetHigh = @as(u32, @truncate(off >> 32)), + .Offset = @truncate(off), + .OffsetHigh = @truncate(off >> 32), }, }, .hEvent = null, @@ -536,6 +539,7 @@ pub fn WriteFile( .BROKEN_PIPE => return error.BrokenPipe, .INVALID_HANDLE => return error.NotOpenForWriting, .LOCK_VIOLATION => return error.LockViolation, + .NETNAME_DELETED => return error.ConnectionResetByPeer, else => |err| return unexpectedError(err), } } diff --git a/lib/std/zig/system.zig b/lib/std/zig/system.zig index 7e0aaaafa0..b29cf939d0 100644 --- a/lib/std/zig/system.zig +++ b/lib/std/zig/system.zig @@ -1103,7 +1103,6 @@ fn preadMin(file: fs.File, buf: []u8, offset: u64, min_read_len: usize) !usize { error.ConnectionResetByPeer => return error.UnableToReadElfFile, error.ConnectionTimedOut => return error.UnableToReadElfFile, error.SocketNotConnected => return error.UnableToReadElfFile, - error.NetNameDeleted => return error.UnableToReadElfFile, error.Unexpected => return error.Unexpected, error.InputOutput => return error.FileSystem, error.AccessDenied => return error.Unexpected, |
