authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-02-24 10:03:40-08:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2024-02-24 10:03:40-08:00
log6fddc9cd3d8002a44cf65e05d32c449bde6ca60c
tree92c2e96c3a8462fb0659a878e789b907a34d9ffa
parent88b3c144265b0e22250f21809bbf9329ecfcfd6f
parent9812bc7b10d093f2041471b166e67748665c89c7
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #19064 from ziglang/fix-netname-deleted

std: map NETNAME_DELETED to error.ConnectionResetByPeer

4 files changed, 19 insertions(+), 8 deletions(-)

lib/std/http/test.zig+11
......@@ -142,6 +142,17 @@ test "HTTP server handles a chunked transfer coding request" {
142142 const stream = try std.net.tcpConnectToHost(gpa, "127.0.0.1", test_server.port());
143143 defer stream.close();
144144 try stream.writeAll(request_bytes);
145
146 const response = try stream.reader().readAllAlloc(gpa, 100);
147 defer gpa.free(response);
148
149 const expected_response =
150 "HTTP/1.1 200 OK\r\n" ++
151 "content-length: 21\r\n" ++
152 "content-type: text/plain\r\n" ++
153 "\r\n" ++
154 "message from server!\n";
155 try expectEqualStrings(expected_response, response);
145156}
146157
147158test "echo content server" {
lib/std/os.zig-3
......@@ -836,9 +836,6 @@ pub const ReadError = error{
836836 NotOpenForReading,
837837 SocketNotConnected,
838838
839 // Windows only
840 NetNameDeleted,
841
842839 /// This error occurs when no global event loop is configured,
843840 /// and reading from the file descriptor would block.
844841 WouldBlock,
lib/std/os/windows.zig+8-4
......@@ -453,7 +453,8 @@ pub fn FindClose(hFindFile: HANDLE) void {
453453
454454pub const ReadFileError = error{
455455 BrokenPipe,
456 NetNameDeleted,
456 /// The specified network name is no longer available.
457 ConnectionResetByPeer,
457458 OperationAborted,
458459 Unexpected,
459460};
......@@ -485,7 +486,7 @@ pub fn ReadFile(in_hFile: HANDLE, buffer: []u8, offset: ?u64) ReadFileError!usiz
485486 .OPERATION_ABORTED => continue,
486487 .BROKEN_PIPE => return 0,
487488 .HANDLE_EOF => return 0,
488 .NETNAME_DELETED => return error.NetNameDeleted,
489 .NETNAME_DELETED => return error.ConnectionResetByPeer,
489490 else => |err| return unexpectedError(err),
490491 }
491492 }
......@@ -501,6 +502,8 @@ pub const WriteFileError = error{
501502 /// The process cannot access the file because another process has locked
502503 /// a portion of the file.
503504 LockViolation,
505 /// The specified network name is no longer available.
506 ConnectionResetByPeer,
504507 Unexpected,
505508};
506509
......@@ -517,8 +520,8 @@ pub fn WriteFile(
517520 .InternalHigh = 0,
518521 .DUMMYUNIONNAME = .{
519522 .DUMMYSTRUCTNAME = .{
520 .Offset = @as(u32, @truncate(off)),
521 .OffsetHigh = @as(u32, @truncate(off >> 32)),
523 .Offset = @truncate(off),
524 .OffsetHigh = @truncate(off >> 32),
522525 },
523526 },
524527 .hEvent = null,
......@@ -536,6 +539,7 @@ pub fn WriteFile(
536539 .BROKEN_PIPE => return error.BrokenPipe,
537540 .INVALID_HANDLE => return error.NotOpenForWriting,
538541 .LOCK_VIOLATION => return error.LockViolation,
542 .NETNAME_DELETED => return error.ConnectionResetByPeer,
539543 else => |err| return unexpectedError(err),
540544 }
541545 }
lib/std/zig/system.zig-1
......@@ -1103,7 +1103,6 @@ fn preadMin(file: fs.File, buf: []u8, offset: u64, min_read_len: usize) !usize {
11031103 error.ConnectionResetByPeer => return error.UnableToReadElfFile,
11041104 error.ConnectionTimedOut => return error.UnableToReadElfFile,
11051105 error.SocketNotConnected => return error.UnableToReadElfFile,
1106 error.NetNameDeleted => return error.UnableToReadElfFile,
11071106 error.Unexpected => return error.Unexpected,
11081107 error.InputOutput => return error.FileSystem,
11091108 error.AccessDenied => return error.Unexpected,