Add Syscalls wrapper for writev() and use in XfrmController
Bug:62618292
Test: runtest -x tests/netd_integration_test.cpp
Change-Id: I743c3867aed62d099de6d80bed89e02e11bac5fc
diff --git a/libnetdutils/Syscalls.cpp b/libnetdutils/Syscalls.cpp
index 00e2422..b0301d2 100644
--- a/libnetdutils/Syscalls.cpp
+++ b/libnetdutils/Syscalls.cpp
@@ -109,6 +109,14 @@
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) {