summaryrefslogtreecommitdiffstats
path: root/libnetdutils/Syscalls.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libnetdutils/Syscalls.cpp')
-rw-r--r--libnetdutils/Syscalls.cpp8
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) {