From 9a449d4f6c5fe68f93afb7dd97900f33907a7388 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Tue, 21 Jan 2020 20:29:26 -0700 Subject: [PATCH] Stub for SO_ERROR to fix curl --- src/platform/redox/socket.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/platform/redox/socket.rs b/src/platform/redox/socket.rs index bb750bb7..56aa5532 100644 --- a/src/platform/redox/socket.rs +++ b/src/platform/redox/socket.rs @@ -145,6 +145,28 @@ impl PalSocket for Sys { option_value: *mut c_void, option_len: *mut socklen_t, ) -> c_int { + match level { + SOL_SOCKET => match option_name { + SO_ERROR => { + if option_value.is_null() { + return e(Err(syscall::Error::new(syscall::EFAULT))) as c_int; + } + + if (option_len as usize) < mem::size_of::<c_int>() { + return e(Err(syscall::Error::new(syscall::EINVAL))) as c_int; + } + + let error = unsafe { &mut *(option_value as *mut c_int) }; + //TODO: Socket nonblock connection error + *error = 0; + + return 0; + }, + _ => (), + }, + _ => (), + } + eprintln!( "getsockopt({}, {}, {}, {:p}, {:p})", socket, level, option_name, option_value, option_len -- GitLab