| ... | @@ -1823,6 +1823,11 @@ pub const Writer = struct { | ... | @@ -1823,6 +1823,11 @@ pub const Writer = struct { |
| 1823 | .NOBUFS => w.sendfile_err = error.SystemResources, | 1823 | .NOBUFS => w.sendfile_err = error.SystemResources, |
| 1824 | else => |err| w.sendfile_err = posix.unexpectedErrno(err), | 1824 | else => |err| w.sendfile_err = posix.unexpectedErrno(err), |
| 1825 | } | 1825 | } |
| | 1826 | if (w.sendfile_err != null) { |
| | 1827 | // Give calling code chance to observe the error before trying |
| | 1828 | // something else. |
| | 1829 | return 0; |
| | 1830 | } |
| 1826 | if (sbytes == 0) { | 1831 | if (sbytes == 0) { |
| 1827 | file_reader.size = file_reader.pos; | 1832 | file_reader.size = file_reader.pos; |
| 1828 | return error.EndOfStream; | 1833 | return error.EndOfStream; |
| ... | @@ -1879,6 +1884,11 @@ pub const Writer = struct { | ... | @@ -1879,6 +1884,11 @@ pub const Writer = struct { |
| 1879 | .PIPE => w.sendfile_err = error.BrokenPipe, | 1884 | .PIPE => w.sendfile_err = error.BrokenPipe, |
| 1880 | else => |err| w.sendfile_err = posix.unexpectedErrno(err), | 1885 | else => |err| w.sendfile_err = posix.unexpectedErrno(err), |
| 1881 | } | 1886 | } |
| | 1887 | if (w.sendfile_err != null) { |
| | 1888 | // Give calling code chance to observe the error before trying |
| | 1889 | // something else. |
| | 1890 | return 0; |
| | 1891 | } |
| 1882 | if (len == 0) { | 1892 | if (len == 0) { |
| 1883 | file_reader.size = file_reader.pos; | 1893 | file_reader.size = file_reader.pos; |
| 1884 | return error.EndOfStream; | 1894 | return error.EndOfStream; |