diff options
Diffstat (limited to 'src/sys/socket/mod.rs')
-rw-r--r-- | src/sys/socket/mod.rs | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/src/sys/socket/mod.rs b/src/sys/socket/mod.rs index 1c12c5f8..0bb7b2f3 100644 --- a/src/sys/socket/mod.rs +++ b/src/sys/socket/mod.rs @@ -553,11 +553,10 @@ impl ControlMessageOwned { let n = len / mem::size_of::<RawFd>(); let mut fds = Vec::with_capacity(n); for i in 0..n { - let fdp = (p as *const RawFd).offset(i as isize); + let fdp = (p as *const RawFd).add(i); fds.push(ptr::read_unaligned(fdp)); } - let cmo = ControlMessageOwned::ScmRights(fds); - cmo + ControlMessageOwned::ScmRights(fds) }, #[cfg(any(target_os = "android", target_os = "linux"))] (libc::SOL_SOCKET, libc::SCM_CREDENTIALS) => { @@ -715,16 +714,16 @@ impl<'a> ControlMessage<'a> { /// Return a reference to the payload data as a byte pointer fn copy_to_cmsg_data(&self, cmsg_data: *mut u8) { - let data_ptr = match self { - &ControlMessage::ScmRights(fds) => { + let data_ptr = match *self { + ControlMessage::ScmRights(fds) => { fds as *const _ as *const u8 }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::ScmCredentials(creds) => { + ControlMessage::ScmCredentials(creds) => { creds as *const libc::ucred as *const u8 } #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetIv(iv) => { + ControlMessage::AlgSetIv(iv) => { unsafe { let alg_iv = cmsg_data as *mut libc::af_alg_iv; (*alg_iv).ivlen = iv.len() as u32; @@ -737,11 +736,11 @@ impl<'a> ControlMessage<'a> { return }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetOp(op) => { + ControlMessage::AlgSetOp(op) => { op as *const _ as *const u8 }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetAeadAssoclen(len) => { + ControlMessage::AlgSetAeadAssoclen(len) => { len as *const _ as *const u8 }, }; @@ -756,24 +755,24 @@ impl<'a> ControlMessage<'a> { /// The size of the payload, excluding its cmsghdr fn len(&self) -> usize { - match self { - &ControlMessage::ScmRights(fds) => { + match *self { + ControlMessage::ScmRights(fds) => { mem::size_of_val(fds) }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::ScmCredentials(creds) => { + ControlMessage::ScmCredentials(creds) => { mem::size_of_val(creds) } #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetIv(iv) => { + ControlMessage::AlgSetIv(iv) => { mem::size_of::<libc::af_alg_iv>() + iv.len() }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetOp(op) => { + ControlMessage::AlgSetOp(op) => { mem::size_of_val(op) }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetAeadAssoclen(len) => { + ControlMessage::AlgSetAeadAssoclen(len) => { mem::size_of_val(len) }, } @@ -781,33 +780,32 @@ impl<'a> ControlMessage<'a> { /// Returns the value to put into the `cmsg_level` field of the header. fn cmsg_level(&self) -> libc::c_int { - match self { - &ControlMessage::ScmRights(_) => libc::SOL_SOCKET, + match *self { + ControlMessage::ScmRights(_) => libc::SOL_SOCKET, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::ScmCredentials(_) => libc::SOL_SOCKET, + ControlMessage::ScmCredentials(_) => libc::SOL_SOCKET, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetIv(_) | &ControlMessage::AlgSetOp(_) | &ControlMessage::AlgSetAeadAssoclen(_) => { - libc::SOL_ALG - }, + ControlMessage::AlgSetIv(_) | ControlMessage::AlgSetOp(_) | + ControlMessage::AlgSetAeadAssoclen(_) => libc::SOL_ALG , } } /// Returns the value to put into the `cmsg_type` field of the header. fn cmsg_type(&self) -> libc::c_int { - match self { - &ControlMessage::ScmRights(_) => libc::SCM_RIGHTS, + match *self { + ControlMessage::ScmRights(_) => libc::SCM_RIGHTS, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::ScmCredentials(_) => libc::SCM_CREDENTIALS, + ControlMessage::ScmCredentials(_) => libc::SCM_CREDENTIALS, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetIv(_) => { + ControlMessage::AlgSetIv(_) => { libc::ALG_SET_IV }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetOp(_) => { + ControlMessage::AlgSetOp(_) => { libc::ALG_SET_OP }, #[cfg(any(target_os = "android", target_os = "linux"))] - &ControlMessage::AlgSetAeadAssoclen(_) => { + ControlMessage::AlgSetAeadAssoclen(_) => { libc::ALG_SET_AEAD_ASSOCLEN }, } @@ -1231,7 +1229,7 @@ pub unsafe fn sockaddr_storage_to_addr( return Err(Error::Sys(Errno::ENOTCONN)); } - match addr.ss_family as c_int { + match c_int::from(addr.ss_family) { libc::AF_INET => { assert!(len as usize == mem::size_of::<sockaddr_in>()); let ret = *(addr as *const _ as *const sockaddr_in); |