From 94f29be1f7017f4af79f88b846aa4e0075d0fc8b Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Sun, 29 Sep 2024 08:25:00 +0200 Subject: [PATCH] fix error code to be POSIX compatible --- src/fd/mod.rs | 4 ++-- src/io.rs | 1 + src/scheduler/mod.rs | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/fd/mod.rs b/src/fd/mod.rs index 8f5eaa4877..a0c2142bf6 100644 --- a/src/fd/mod.rs +++ b/src/fd/mod.rs @@ -205,13 +205,13 @@ pub(crate) trait ObjectInterface: Sync + Send + core::fmt::Debug { /// `setsockopt` sets options on sockets #[cfg(any(feature = "tcp", feature = "udp", feature = "vsock"))] async fn setsockopt(&self, _opt: SocketOption, _optval: bool) -> io::Result<()> { - Err(io::Error::EINVAL) + Err(io::Error::ENOTSOCK) } /// `getsockopt` gets options on sockets #[cfg(any(feature = "tcp", feature = "udp", feature = "vsock"))] async fn getsockopt(&self, _opt: SocketOption) -> io::Result { - Err(io::Error::EINVAL) + Err(io::Error::ENOTSOCK) } /// `getsockname` gets socket name diff --git a/src/io.rs b/src/io.rs index 67a3368e9f..babfc84177 100644 --- a/src/io.rs +++ b/src/io.rs @@ -22,6 +22,7 @@ pub enum Error { EEXIST = crate::errno::EEXIST as isize, EADDRINUSE = crate::errno::EADDRINUSE as isize, EOVERFLOW = crate::errno::EOVERFLOW as isize, + ENOTSOCK = crate::errno::ENOTSOCK as isize, } pub type Result = result::Result; diff --git a/src/scheduler/mod.rs b/src/scheduler/mod.rs index 342ec1abe1..8af2bf1906 100644 --- a/src/scheduler/mod.rs +++ b/src/scheduler/mod.rs @@ -468,7 +468,7 @@ impl PerCoreScheduler { let mut pinned_obj = core::pin::pin!(borrowed.object_map.read()); let guard = ready!(pinned_obj.as_mut().poll(cx)); - Ready(guard.get(&fd).cloned().ok_or(io::Error::EINVAL)) + Ready(guard.get(&fd).cloned().ok_or(io::Error::EBADF)) }) }) .await @@ -579,7 +579,7 @@ impl PerCoreScheduler { let borrowed = self.current_task.borrow(); let mut pinned_obj = core::pin::pin!(borrowed.object_map.write()); let mut guard = ready!(pinned_obj.as_mut().poll(cx)); - Ready(guard.remove(&fd).ok_or(io::Error::EINVAL)) + Ready(guard.remove(&fd).ok_or(io::Error::EBADF)) }) }) .await