From d5d7e0561f1b755ba641992ab6d24b5c986e6116 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 17 Nov 2023 10:30:28 +0100 Subject: [PATCH] event/net/SocketWrapper: pass std::span to WriteV() --- src/event/net/BufferedSocket.cxx | 5 +++-- src/event/net/BufferedSocket.hxx | 2 +- src/event/net/SocketWrapper.cxx | 4 ++-- src/event/net/SocketWrapper.hxx | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/event/net/BufferedSocket.cxx b/src/event/net/BufferedSocket.cxx index 1ad7dac89..1de4253f5 100644 --- a/src/event/net/BufferedSocket.cxx +++ b/src/event/net/BufferedSocket.cxx @@ -8,6 +8,7 @@ #include "net/TimeoutError.hxx" #include +#include // for struct iovec BufferedSocket::BufferedSocket(EventLoop &_event_loop) noexcept :base(_event_loop, *this), @@ -784,9 +785,9 @@ BufferedSocket::Write(std::span src) noexcept } ssize_t -BufferedSocket::WriteV(const struct iovec *v, std::size_t n) noexcept +BufferedSocket::WriteV(std::span v) noexcept { - ssize_t nbytes = base.WriteV(v, n); + ssize_t nbytes = base.WriteV(v); if (nbytes < 0) [[unlikely]] { if (const int e = errno; e == EAGAIN) [[likely]] { diff --git a/src/event/net/BufferedSocket.hxx b/src/event/net/BufferedSocket.hxx index cd34fee33..85eec5b0e 100644 --- a/src/event/net/BufferedSocket.hxx +++ b/src/event/net/BufferedSocket.hxx @@ -604,7 +604,7 @@ public: */ ssize_t Write(std::span src) noexcept; - ssize_t WriteV(const struct iovec *v, std::size_t n) noexcept; + ssize_t WriteV(std::span v) noexcept; /** * Transfer data from the given file descriptor to the socket. diff --git a/src/event/net/SocketWrapper.cxx b/src/event/net/SocketWrapper.cxx index 8dfbecbd4..198c8f452 100644 --- a/src/event/net/SocketWrapper.cxx +++ b/src/event/net/SocketWrapper.cxx @@ -136,11 +136,11 @@ SocketWrapper::Write(std::span src) noexcept } ssize_t -SocketWrapper::WriteV(const struct iovec *v, std::size_t n) noexcept +SocketWrapper::WriteV(std::span v) noexcept { assert(IsValid()); - auto m = MakeMsgHdr({v, n}); + auto m = MakeMsgHdr(v); return sendmsg(GetSocket().Get(), &m, MSG_DONTWAIT|MSG_NOSIGNAL); } diff --git a/src/event/net/SocketWrapper.hxx b/src/event/net/SocketWrapper.hxx index 5fb36cb92..9efbdb84d 100644 --- a/src/event/net/SocketWrapper.hxx +++ b/src/event/net/SocketWrapper.hxx @@ -166,7 +166,7 @@ public: ssize_t Write(std::span src) noexcept; - ssize_t WriteV(const struct iovec *v, std::size_t n) noexcept; + ssize_t WriteV(std::span v) noexcept; ssize_t WriteFrom(FileDescriptor other_fd, FdType other_fd_type, off_t *other_offset,