Merge branch 'fix-inet-eopnopsupp' into 'master'

Fix netstack triggering EOPNOTSUPP

See merge request redox-os/relibc!764
This commit is contained in:
Jeremy Soller
2025-11-24 07:08:11 -07:00
+8 -6
View File
@@ -1023,20 +1023,22 @@ impl PalSocket for Sys {
SO_RCVTIMEO => return set_timeout(b"read_timeout"),
SO_SNDTIMEO => return set_timeout(b"write_timeout"),
_ => {
let (family, _) = socket_domain_type(socket)?;
if family == AF_INET {
// netstack does not support SYS_CALL
return Ok(());
}
let metadata = [SocketCall::SetSockOpt as u64, option_name as u64];
let payload =
slice::from_raw_parts_mut(option_value as *mut u8, option_len as usize);
let call_flags = CallFlags::empty();
match redox_rt::sys::sys_call(
redox_rt::sys::sys_call(
socket as usize,
payload,
CallFlags::empty(),
&metadata,
) {
Err(e) if e.errno == EOPNOTSUPP as i32 => (),
Err(e) => return Err(e.into()),
Ok(_) => return Ok(()),
}
)?;
return Ok(());
}
},
_ => (),