Skip to content

Commit 3eb983e

Browse files
committed
Fix setsockopt and getsockopt parameter names.
Previously `level` was named `opt` and `option_name` was named `val`, then extra names of `payload` or `slot` were used for the option value. This change aligns the wrapper parameters with their names in POSIX. Winsock uses similar but more abbreviated names: `level`, `optname`, `optval`, `optlen`.
1 parent 45e2c28 commit 3eb983e

File tree

1 file changed

+25
-9
lines changed
  • library/std/src/sys_common

1 file changed

+25
-9
lines changed

library/std/src/sys_common/net.rs

+25-9
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,37 @@ cfg_if::cfg_if! {
5858
// sockaddr and misc bindings
5959
////////////////////////////////////////////////////////////////////////////////
6060

61-
pub fn setsockopt<T>(sock: &Socket, opt: c_int, val: c_int, payload: T) -> io::Result<()> {
61+
pub fn setsockopt<T>(
62+
sock: &Socket,
63+
level: c_int,
64+
option_name: c_int,
65+
option_value: T,
66+
) -> io::Result<()> {
6267
unsafe {
63-
let payload = &payload as *const T as *const c_void;
64-
cvt(c::setsockopt(sock.as_raw(), opt, val, payload, mem::size_of::<T>() as c::socklen_t))?;
68+
cvt(c::setsockopt(
69+
sock.as_raw(),
70+
level,
71+
option_name,
72+
&option_value as *const T as *const _,
73+
mem::size_of::<T>() as c::socklen_t,
74+
))?;
6575
Ok(())
6676
}
6777
}
6878

69-
pub fn getsockopt<T: Copy>(sock: &Socket, opt: c_int, val: c_int) -> io::Result<T> {
79+
pub fn getsockopt<T: Copy>(sock: &Socket, level: c_int, option_name: c_int) -> io::Result<T> {
7080
unsafe {
71-
let mut slot: T = mem::zeroed();
72-
let mut len = mem::size_of::<T>() as c::socklen_t;
73-
cvt(c::getsockopt(sock.as_raw(), opt, val, &mut slot as *mut _ as *mut _, &mut len))?;
74-
assert_eq!(len as usize, mem::size_of::<T>());
75-
Ok(slot)
81+
let mut option_value: T = mem::zeroed();
82+
let mut option_len = mem::size_of::<T>() as c::socklen_t;
83+
cvt(c::getsockopt(
84+
sock.as_raw(),
85+
level,
86+
option_name,
87+
&mut option_value as *mut T as *mut _,
88+
&mut option_len,
89+
))?;
90+
assert_eq!(option_len as usize, mem::size_of::<T>());
91+
Ok(option_value)
7692
}
7793
}
7894

0 commit comments

Comments
 (0)