mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibCore+RequestServer: Return size_t from system read/write functions
The system uses ssize_t so it can return -1 in case of an error. But in our case, we will transform that to an AK::Error, thus we never return -1. Let's return size_t instead.
This commit is contained in:
parent
e5ea4f9bdf
commit
005e965380
Notes:
github-actions[bot]
2025-12-01 15:31:02 +00:00
Author: https://github.com/trflynn89
Commit: 005e965380
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6984
Reviewed-by: https://github.com/gmta ✅
9 changed files with 34 additions and 34 deletions
|
|
@ -125,7 +125,7 @@ ErrorOr<Bytes> File::read_some(Bytes buffer)
|
|||
return Error::from_errno(EBADF);
|
||||
}
|
||||
|
||||
ssize_t nread = TRY(System::read(m_fd, buffer));
|
||||
auto nread = TRY(System::read(m_fd, buffer));
|
||||
m_last_read_was_eof = nread == 0;
|
||||
m_file_offset += nread;
|
||||
return buffer.trim(nread);
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ ErrorOr<Bytes> PosixSocketHelper::read(Bytes buffer, int flags)
|
|||
return Error::from_errno(ENOTCONN);
|
||||
}
|
||||
|
||||
ssize_t nread = TRY(System::recv(m_fd, buffer, flags));
|
||||
auto nread = TRY(System::recv(m_fd, buffer, flags));
|
||||
if (nread == 0)
|
||||
did_reach_eof_on_read();
|
||||
|
||||
|
|
@ -150,7 +150,7 @@ ErrorOr<size_t> PosixSocketHelper::write(ReadonlyBytes buffer, int flags)
|
|||
return Error::from_errno(ENOTCONN);
|
||||
}
|
||||
|
||||
return TRY(System::send(m_fd, buffer, flags));
|
||||
return System::send(m_fd, buffer, flags);
|
||||
}
|
||||
|
||||
void PosixSocketHelper::close()
|
||||
|
|
@ -410,7 +410,7 @@ ErrorOr<void> LocalSocket::send_fd(int fd)
|
|||
#endif
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> LocalSocket::send_message(ReadonlyBytes data, int flags, Vector<int, 1> fds)
|
||||
ErrorOr<size_t> LocalSocket::send_message(ReadonlyBytes data, int flags, Vector<int, 1> fds)
|
||||
{
|
||||
size_t const num_fds = fds.size();
|
||||
if (num_fds == 0)
|
||||
|
|
@ -439,7 +439,7 @@ ErrorOr<ssize_t> LocalSocket::send_message(ReadonlyBytes data, int flags, Vector
|
|||
msg.msg_control = header;
|
||||
msg.msg_controllen = CMSG_LEN(fd_payload_size);
|
||||
|
||||
return TRY(Core::System::sendmsg(m_helper.fd(), &msg, default_flags() | flags));
|
||||
return Core::System::sendmsg(m_helper.fd(), &msg, default_flags() | flags);
|
||||
}
|
||||
|
||||
ErrorOr<Bytes> LocalSocket::receive_message(AK::Bytes buffer, int flags, Vector<int>& fds)
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ public:
|
|||
ErrorOr<void> send_fd(int fd);
|
||||
|
||||
ErrorOr<Bytes> receive_message(Bytes buffer, int flags, Vector<int>& fds);
|
||||
ErrorOr<ssize_t> send_message(ReadonlyBytes msg, int flags, Vector<int, 1> fds = {});
|
||||
ErrorOr<size_t> send_message(ReadonlyBytes msg, int flags, Vector<int, 1> fds = {});
|
||||
|
||||
ErrorOr<pid_t> peer_pid() const;
|
||||
ErrorOr<Bytes> read_without_waiting(Bytes buffer);
|
||||
|
|
|
|||
|
|
@ -255,17 +255,17 @@ ErrorOr<struct stat> lstat(StringView path)
|
|||
return st;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> read(int fd, Bytes buffer)
|
||||
ErrorOr<size_t> read(int fd, Bytes buffer)
|
||||
{
|
||||
ssize_t rc = ::read(fd, buffer.data(), buffer.size());
|
||||
auto rc = ::read(fd, buffer.data(), buffer.size());
|
||||
if (rc < 0)
|
||||
return Error::from_syscall("read"sv, errno);
|
||||
return rc;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> write(int fd, ReadonlyBytes buffer)
|
||||
ErrorOr<size_t> write(int fd, ReadonlyBytes buffer)
|
||||
{
|
||||
ssize_t rc = ::write(fd, buffer.data(), buffer.size());
|
||||
auto rc = ::write(fd, buffer.data(), buffer.size());
|
||||
if (rc < 0)
|
||||
return Error::from_syscall("write"sv, errno);
|
||||
return rc;
|
||||
|
|
@ -557,7 +557,7 @@ ErrorOr<void> connect(int sockfd, struct sockaddr const* address, socklen_t addr
|
|||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> send(int sockfd, ReadonlyBytes data, int flags)
|
||||
ErrorOr<size_t> send(int sockfd, ReadonlyBytes data, int flags)
|
||||
{
|
||||
auto sent = ::send(sockfd, data.data(), data.size(), flags);
|
||||
if (sent < 0)
|
||||
|
|
@ -565,7 +565,7 @@ ErrorOr<ssize_t> send(int sockfd, ReadonlyBytes data, int flags)
|
|||
return sent;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> sendmsg(int sockfd, const struct msghdr* message, int flags)
|
||||
ErrorOr<size_t> sendmsg(int sockfd, const struct msghdr* message, int flags)
|
||||
{
|
||||
auto sent = ::sendmsg(sockfd, message, flags);
|
||||
if (sent < 0)
|
||||
|
|
@ -573,7 +573,7 @@ ErrorOr<ssize_t> sendmsg(int sockfd, const struct msghdr* message, int flags)
|
|||
return sent;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> sendto(int sockfd, ReadonlyBytes data, int flags, struct sockaddr const* destination, socklen_t destination_length)
|
||||
ErrorOr<size_t> sendto(int sockfd, ReadonlyBytes data, int flags, struct sockaddr const* destination, socklen_t destination_length)
|
||||
{
|
||||
auto sent = ::sendto(sockfd, data.data(), data.size(), flags, destination, destination_length);
|
||||
if (sent < 0)
|
||||
|
|
@ -581,7 +581,7 @@ ErrorOr<ssize_t> sendto(int sockfd, ReadonlyBytes data, int flags, struct sockad
|
|||
return sent;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> recv(int sockfd, Bytes buffer, int flags)
|
||||
ErrorOr<size_t> recv(int sockfd, Bytes buffer, int flags)
|
||||
{
|
||||
auto received = ::recv(sockfd, buffer.data(), buffer.size(), flags);
|
||||
if (received < 0)
|
||||
|
|
@ -589,7 +589,7 @@ ErrorOr<ssize_t> recv(int sockfd, Bytes buffer, int flags)
|
|||
return received;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> recvmsg(int sockfd, struct msghdr* message, int flags)
|
||||
ErrorOr<size_t> recvmsg(int sockfd, struct msghdr* message, int flags)
|
||||
{
|
||||
auto received = ::recvmsg(sockfd, message, flags);
|
||||
if (received < 0)
|
||||
|
|
@ -597,7 +597,7 @@ ErrorOr<ssize_t> recvmsg(int sockfd, struct msghdr* message, int flags)
|
|||
return received;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> recvfrom(int sockfd, Bytes buffer, int flags, struct sockaddr* address, socklen_t* address_length)
|
||||
ErrorOr<size_t> recvfrom(int sockfd, Bytes buffer, int flags, struct sockaddr* address, socklen_t* address_length)
|
||||
{
|
||||
auto received = ::recvfrom(sockfd, buffer.data(), buffer.size(), flags, address, address_length);
|
||||
if (received < 0)
|
||||
|
|
@ -879,7 +879,7 @@ ErrorOr<size_t> transfer_file_through_pipe(int source_fd, int target_fd, size_t
|
|||
auto* mapped = TRY(mmap(nullptr, mapped_source_length, PROT_READ, MAP_SHARED, source_fd, aligned_source_offset));
|
||||
ScopeGuard guard { [&]() { (void)munmap(mapped, mapped_source_length); } };
|
||||
|
||||
return TRY(write(target_fd, { static_cast<u8*>(mapped) + offset_adjustment, source_length }));
|
||||
return write(target_fd, { static_cast<u8*>(mapped) + offset_adjustment, source_length });
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -87,8 +87,8 @@ ErrorOr<void> close(int fd);
|
|||
ErrorOr<void> ftruncate(int fd, off_t length);
|
||||
ErrorOr<struct stat> stat(StringView path);
|
||||
ErrorOr<struct stat> lstat(StringView path);
|
||||
ErrorOr<ssize_t> read(int fd, Bytes buffer);
|
||||
ErrorOr<ssize_t> write(int fd, ReadonlyBytes buffer);
|
||||
ErrorOr<size_t> read(int fd, Bytes buffer);
|
||||
ErrorOr<size_t> write(int fd, ReadonlyBytes buffer);
|
||||
ErrorOr<int> dup(int source_fd);
|
||||
ErrorOr<int> dup2(int source_fd, int destination_fd);
|
||||
ErrorOr<ByteString> getcwd();
|
||||
|
|
@ -117,12 +117,12 @@ ErrorOr<void> bind(int sockfd, struct sockaddr const*, socklen_t);
|
|||
ErrorOr<void> listen(int sockfd, int backlog);
|
||||
ErrorOr<int> accept(int sockfd, struct sockaddr*, socklen_t*);
|
||||
ErrorOr<void> connect(int sockfd, struct sockaddr const*, socklen_t);
|
||||
ErrorOr<ssize_t> send(int sockfd, ReadonlyBytes, int flags);
|
||||
ErrorOr<ssize_t> sendmsg(int sockfd, const struct msghdr*, int flags);
|
||||
ErrorOr<ssize_t> sendto(int sockfd, ReadonlyBytes, int flags, struct sockaddr const*, socklen_t);
|
||||
ErrorOr<ssize_t> recv(int sockfd, Bytes, int flags);
|
||||
ErrorOr<ssize_t> recvmsg(int sockfd, struct msghdr*, int flags);
|
||||
ErrorOr<ssize_t> recvfrom(int sockfd, Bytes, int flags, struct sockaddr*, socklen_t*);
|
||||
ErrorOr<size_t> send(int sockfd, ReadonlyBytes, int flags);
|
||||
ErrorOr<size_t> sendmsg(int sockfd, const struct msghdr*, int flags);
|
||||
ErrorOr<size_t> sendto(int sockfd, ReadonlyBytes, int flags, struct sockaddr const*, socklen_t);
|
||||
ErrorOr<size_t> recv(int sockfd, Bytes, int flags);
|
||||
ErrorOr<size_t> recvmsg(int sockfd, struct msghdr*, int flags);
|
||||
ErrorOr<size_t> recvfrom(int sockfd, Bytes, int flags, struct sockaddr*, socklen_t*);
|
||||
ErrorOr<void> getsockopt(int sockfd, int level, int option, void* value, socklen_t* value_size);
|
||||
ErrorOr<void> setsockopt(int sockfd, int level, int option, void const* value, socklen_t value_size);
|
||||
ErrorOr<void> getsockname(int sockfd, struct sockaddr*, socklen_t*);
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ ErrorOr<void> close(int handle)
|
|||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> read(int handle, Bytes buffer)
|
||||
ErrorOr<size_t> read(int handle, Bytes buffer)
|
||||
{
|
||||
DWORD n_read = 0;
|
||||
if (!ReadFile(to_handle(handle), buffer.data(), buffer.size(), &n_read, NULL))
|
||||
|
|
@ -55,7 +55,7 @@ ErrorOr<ssize_t> read(int handle, Bytes buffer)
|
|||
return n_read;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> write(int handle, ReadonlyBytes buffer)
|
||||
ErrorOr<size_t> write(int handle, ReadonlyBytes buffer)
|
||||
{
|
||||
DWORD n_written = 0;
|
||||
if (!WriteFile(to_handle(handle), buffer.data(), buffer.size(), &n_written, NULL))
|
||||
|
|
@ -261,7 +261,7 @@ ErrorOr<void> connect(int sockfd, struct sockaddr const* address, socklen_t addr
|
|||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> send(int sockfd, ReadonlyBytes data, int flags)
|
||||
ErrorOr<size_t> send(int sockfd, ReadonlyBytes data, int flags)
|
||||
{
|
||||
auto sent = ::send(sockfd, reinterpret_cast<char const*>(data.data()), static_cast<int>(data.size()), flags);
|
||||
|
||||
|
|
@ -276,7 +276,7 @@ ErrorOr<ssize_t> send(int sockfd, ReadonlyBytes data, int flags)
|
|||
return sent;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> sendto(int sockfd, ReadonlyBytes data, int flags, struct sockaddr const* destination, socklen_t destination_length)
|
||||
ErrorOr<size_t> sendto(int sockfd, ReadonlyBytes data, int flags, struct sockaddr const* destination, socklen_t destination_length)
|
||||
{
|
||||
auto sent = ::sendto(sockfd, reinterpret_cast<char const*>(data.data()), static_cast<int>(data.size()), flags, destination, destination_length);
|
||||
if (sent == SOCKET_ERROR)
|
||||
|
|
@ -284,7 +284,7 @@ ErrorOr<ssize_t> sendto(int sockfd, ReadonlyBytes data, int flags, struct sockad
|
|||
return sent;
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> recvfrom(int sockfd, Bytes buffer, int flags, struct sockaddr* address, socklen_t* address_length)
|
||||
ErrorOr<size_t> recvfrom(int sockfd, Bytes buffer, int flags, struct sockaddr* address, socklen_t* address_length)
|
||||
{
|
||||
auto received = ::recvfrom(sockfd, reinterpret_cast<char*>(buffer.data()), static_cast<int>(buffer.size()), flags, address, address_length);
|
||||
if (received == SOCKET_ERROR)
|
||||
|
|
@ -422,7 +422,7 @@ ErrorOr<size_t> transfer_file_through_pipe(int source_fd, int target_fd, size_t
|
|||
auto* mapped = TRY(mmap(nullptr, mapped_source_length, PROT_READ, MAP_SHARED, source_fd, aligned_source_offset));
|
||||
ScopeGuard guard { [&]() { (void)munmap(mapped, mapped_source_length); } };
|
||||
|
||||
return TRY(send(target_fd, { static_cast<u8*>(mapped) + offset_adjustment, source_length }, 0));
|
||||
return send(target_fd, { static_cast<u8*>(mapped) + offset_adjustment, source_length }, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ ErrorOr<ByteBuffer> UDPServer::receive(size_t size)
|
|||
ErrorOr<size_t> UDPServer::send(ReadonlyBytes buffer, sockaddr_in const& to)
|
||||
{
|
||||
socklen_t to_len = sizeof(to);
|
||||
return TRY(Core::System::sendto(m_fd, buffer, 0, (sockaddr const*)&to, to_len));
|
||||
return Core::System::sendto(m_fd, buffer, 0, (sockaddr const*)&to, to_len);
|
||||
}
|
||||
|
||||
Optional<IPv4Address> UDPServer::local_address() const
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ ErrorOr<RequestPipe> RequestPipe::create()
|
|||
#endif
|
||||
}
|
||||
|
||||
ErrorOr<ssize_t> RequestPipe::write(ReadonlyBytes bytes)
|
||||
ErrorOr<size_t> RequestPipe::write(ReadonlyBytes bytes)
|
||||
{
|
||||
#if defined(AK_OS_WINDOWS)
|
||||
return Core::System::send(m_writer_fd, bytes, 0);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public:
|
|||
int reader_fd() const { return m_reader_fd; }
|
||||
int writer_fd() const { return m_writer_fd; }
|
||||
|
||||
ErrorOr<ssize_t> write(ReadonlyBytes bytes);
|
||||
ErrorOr<size_t> write(ReadonlyBytes bytes);
|
||||
|
||||
private:
|
||||
RequestPipe(int reader_fd, int writer_fd);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue