From af5355cc91fb48ed3d1bf31200b4311f801d24a6 Mon Sep 17 00:00:00 2001 From: Martin Kröning Date: Wed, 10 Sep 2025 15:26:59 +0200 Subject: Implement `Socket::take_error` for Hermit --- library/std/src/sys/net/connection/socket/hermit.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'library/std/src') diff --git a/library/std/src/sys/net/connection/socket/hermit.rs b/library/std/src/sys/net/connection/socket/hermit.rs index f49821657d9..5200eaa5786 100644 --- a/library/std/src/sys/net/connection/socket/hermit.rs +++ b/library/std/src/sys/net/connection/socket/hermit.rs @@ -304,7 +304,8 @@ impl Socket { } pub fn take_error(&self) -> io::Result> { - unimplemented!() + let raw: c_int = getsockopt(self, libc::SOL_SOCKET, libc::SO_ERROR)?; + if raw == 0 { Ok(None) } else { Ok(Some(io::Error::from_raw_os_error(raw as i32))) } } // This is used by sys_common code to abstract over Windows and Unix. -- cgit 1.4.1-3-g733a5