diff options
Diffstat (limited to 'libnetdutils/Syscalls.cpp')
| -rw-r--r-- | libnetdutils/Syscalls.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libnetdutils/Syscalls.cpp b/libnetdutils/Syscalls.cpp index 00e2422a6..b0301d281 100644 --- a/libnetdutils/Syscalls.cpp +++ b/libnetdutils/Syscalls.cpp @@ -109,6 +109,14 @@ class RealSyscalls final : public Syscalls { return rv; } + StatusOr<size_t> writev(Fd fd, const std::vector<iovec>& iov) const override { + auto rv = syscallRetry(::writev, fd.get(), iov.data(), iov.size()); + if (rv == -1) { + return statusFromErrno(errno, "writev() failed"); + } + return rv; + } + StatusOr<size_t> write(Fd fd, const Slice buf) const override { auto rv = syscallRetry(::write, fd.get(), buf.base(), buf.size()); if (rv == -1) { |
