Fix return value for nonblock accept and recvfd

This commit is contained in:
Jeremy Soller
2025-11-07 20:11:13 -07:00
parent f311cdd813
commit 3019f8f12a
+4 -4
View File
@@ -731,9 +731,9 @@ impl<'sock> UdsStreamScheme<'sock> {
// Try to accept a waiting connection
let Some(client_id) = socket.awaiting.pop_front() else {
if flags & O_NONBLOCK == O_NONBLOCK {
return Ok(Some(OpenResult::WouldBlock));
return Err(Error::new(EAGAIN));
} else {
return Err(Error::new(EWOULDBLOCK));
return Ok(Some(OpenResult::WouldBlock));
}
};
Ok(self.accept_connection(socket, client_id)?)
@@ -893,9 +893,9 @@ impl<'sock> UdsStreamScheme<'sock> {
return if connection.is_peer_shutdown {
Ok(OpenResult::OtherSchemeMultiple { num_fds: 0 }) // EOF, no data to read
} else if (socket.flags as usize) & O_NONBLOCK == O_NONBLOCK {
Ok(OpenResult::WouldBlock)
Err(Error::new(EAGAIN))
} else {
Err(Error::new(EWOULDBLOCK))
Ok(OpenResult::WouldBlock)
};
}