Skip to content

Commit

Permalink
event/net/SocketWrapper: pass std::span to WriteV()
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxKellermann committed Nov 17, 2023
1 parent 5472ea3 commit d5d7e05
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 6 deletions.
5 changes: 3 additions & 2 deletions src/event/net/BufferedSocket.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "net/TimeoutError.hxx"

#include <errno.h>
#include <sys/uio.h> // for struct iovec

BufferedSocket::BufferedSocket(EventLoop &_event_loop) noexcept
:base(_event_loop, *this),
Expand Down Expand Up @@ -784,9 +785,9 @@ BufferedSocket::Write(std::span<const std::byte> src) noexcept
}

ssize_t
BufferedSocket::WriteV(const struct iovec *v, std::size_t n) noexcept
BufferedSocket::WriteV(std::span<const struct iovec> 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]] {
Expand Down
2 changes: 1 addition & 1 deletion src/event/net/BufferedSocket.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ public:
*/
ssize_t Write(std::span<const std::byte> src) noexcept;

ssize_t WriteV(const struct iovec *v, std::size_t n) noexcept;
ssize_t WriteV(std::span<const struct iovec> v) noexcept;

/**
* Transfer data from the given file descriptor to the socket.
Expand Down
4 changes: 2 additions & 2 deletions src/event/net/SocketWrapper.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,11 @@ SocketWrapper::Write(std::span<const std::byte> src) noexcept
}

ssize_t
SocketWrapper::WriteV(const struct iovec *v, std::size_t n) noexcept
SocketWrapper::WriteV(std::span<const struct iovec> v) noexcept
{
assert(IsValid());

auto m = MakeMsgHdr({v, n});
auto m = MakeMsgHdr(v);

return sendmsg(GetSocket().Get(), &m, MSG_DONTWAIT|MSG_NOSIGNAL);
}
Expand Down
2 changes: 1 addition & 1 deletion src/event/net/SocketWrapper.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ public:

ssize_t Write(std::span<const std::byte> src) noexcept;

ssize_t WriteV(const struct iovec *v, std::size_t n) noexcept;
ssize_t WriteV(std::span<const struct iovec> v) noexcept;

ssize_t WriteFrom(FileDescriptor other_fd, FdType other_fd_type,
off_t *other_offset,
Expand Down

0 comments on commit d5d7e05

Please sign in to comment.