fd/ops: Fix accept() address return
Error cases and EOF don't return addresses.
Change-Id: I7c72e64f70d7b74f0761edd40e135ffaa2e9e325
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/fd/impl.cpp b/src/fd/impl.cpp
index 40ce7b3..55efbab 100644
--- a/src/fd/impl.cpp
+++ b/src/fd/impl.cpp
@@ -123,7 +123,7 @@
CHECK_ERRNO(::listen(get(), backlog), "listen");
}
-std::tuple<std::optional<int>, std::span<std::byte>>
+std::optional<std::tuple<int, std::span<std::byte>>>
FdImpl::accept(std::span<std::byte> sockaddr)
{
socklen_t len = sockaddr.size();
@@ -133,7 +133,7 @@
{
if (errno == EAGAIN || errno == EWOULDBLOCK)
{
- return {};
+ return std::nullopt;
}
throw util::makeSystemError(errno, "accept");
}