From 81adcd533e168bee9a16f30f690cf72aa99c1eb6 Mon Sep 17 00:00:00 2001 From: lithdew Date: Mon, 12 Apr 2021 17:26:28 +0900 Subject: [PATCH] os/posix: handle ECONNRESET for write/writev --- lib/std/os.zig | 5 +++++ src/main.zig | 1 + 2 files changed, 6 insertions(+) diff --git a/lib/std/os.zig b/lib/std/os.zig index 9826ba46f1..7342db0d01 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -675,6 +675,9 @@ pub const WriteError = error{ /// This error occurs when no global event loop is configured, /// and reading from the file descriptor would block. WouldBlock, + + /// Connection reset by peer. + ConnectionResetByPeer, } || UnexpectedError; /// Write to a file descriptor. @@ -752,6 +755,7 @@ pub fn write(fd: fd_t, bytes: []const u8) WriteError!usize { ENOSPC => return error.NoSpaceLeft, EPERM => return error.AccessDenied, EPIPE => return error.BrokenPipe, + ECONNRESET => return error.ConnectionResetByPeer, else => |err| return unexpectedErrno(err), } } @@ -820,6 +824,7 @@ pub fn writev(fd: fd_t, iov: []const iovec_const) WriteError!usize { ENOSPC => return error.NoSpaceLeft, EPERM => return error.AccessDenied, EPIPE => return error.BrokenPipe, + ECONNRESET => return error.ConnectionResetByPeer, else => |err| return unexpectedErrno(err), } } diff --git a/src/main.zig b/src/main.zig index e5470a8cca..d9ca5da154 100644 --- a/src/main.zig +++ b/src/main.zig @@ -2859,6 +2859,7 @@ const FmtError = error{ Unseekable, NotOpenForWriting, UnsupportedEncoding, + ConnectionResetByPeer, } || fs.File.OpenError; fn fmtPath(fmt: *Fmt, file_path: []const u8, check_mode: bool, dir: fs.Dir, sub_path: []const u8) FmtError!void {