diff --git a/src/platform/redox/socket.rs b/src/platform/redox/socket.rs index a4b8318eee..c7d325ff8d 100644 --- a/src/platform/redox/socket.rs +++ b/src/platform/redox/socket.rs @@ -820,8 +820,14 @@ impl PalSocket for Sys { Err(Errno(ENOSYS)) } - fn listen(socket: c_int, backlog: c_int) -> Result<()> { - // Redox has no need to listen + fn listen(socket: c_int, _backlog: c_int) -> Result<()> { + // TCP sockets enter LISTEN state during bind(), so listen() is + // a no-op on Red Bear. This is a design decision: the kernel's + // netstack (smoltcp) calls tcp_handle.listen() when the socket + // is bound, making the POSIX listen() call redundant. + // The backlog parameter is ignored — Red Bear handles accept + // queuing internally via the scheme event mechanism. + let _ = socket; Ok(()) } @@ -1119,7 +1125,7 @@ impl PalSocket for Sys { option_value, option_len ); - Ok(()) + Err(Errno(ENOPROTOOPT)) } fn shutdown(socket: c_int, how: c_int) -> Result<()> {