From fc7de4b40493599c390d582d94429d387541a065 Mon Sep 17 00:00:00 2001 From: David Hotham Date: Sun, 26 May 2024 18:59:32 +0100 Subject: [PATCH] prefer ptr::from_ref --- src/a.rs | 2 +- src/aaaa.rs | 2 +- src/channel.rs | 17 +++++++---------- src/hostent.rs | 7 +++---- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/a.rs b/src/a.rs index 057439308..1b93b380c 100644 --- a/src/a.rs +++ b/src/a.rs @@ -38,7 +38,7 @@ impl AResults { data.len() as c_int, ptr::null_mut(), results.addrttls.as_mut_ptr(), - (&mut results.naddrttls as *mut usize).cast(), + ptr::from_mut(&mut results.naddrttls).cast(), ) }; if parse_status == c_ares_sys::ares_status_t::ARES_SUCCESS as i32 { diff --git a/src/aaaa.rs b/src/aaaa.rs index f38a8edef..168f6d95e 100644 --- a/src/aaaa.rs +++ b/src/aaaa.rs @@ -37,7 +37,7 @@ impl AAAAResults { data.len() as c_int, ptr::null_mut(), results.addr6ttls.as_mut_ptr(), - (&mut results.naddr6ttls as *mut usize).cast(), + ptr::from_mut(&mut results.naddr6ttls).cast(), ) }; if parse_status == c_ares_sys::ares_status_t::ARES_SUCCESS as i32 { diff --git a/src/channel.rs b/src/channel.rs index d6a0c67c1..fefe62d08 100644 --- a/src/channel.rs +++ b/src/channel.rs @@ -205,7 +205,7 @@ impl Options { { let boxed_callback = Arc::new(callback); self.ares_options.sock_state_cb = Some(socket_state_callback::); - self.ares_options.sock_state_cb_data = (&*boxed_callback as *const F).cast_mut().cast(); + self.ares_options.sock_state_cb_data = ptr::from_ref(&*boxed_callback).cast_mut().cast(); self.socket_state_callback = Some(boxed_callback); self.optmask |= c_ares_sys::ARES_OPT_SOCK_STATE_CB; self @@ -498,10 +498,7 @@ impl Channel { pub fn set_local_ipv6(&mut self, ipv6: &Ipv6Addr) -> &mut Self { let in6_addr = ipv6_as_in6_addr(ipv6); unsafe { - c_ares_sys::ares_set_local_ip6( - self.ares_channel, - (&in6_addr as *const c_types::in6_addr).cast(), - ) + c_ares_sys::ares_set_local_ip6(self.ares_channel, ptr::from_ref(&in6_addr).cast()) } self } @@ -544,7 +541,7 @@ impl Channel { F: FnMut(&str, bool, ServerStateFlags) + Send + 'static, { let boxed_callback = Arc::new(callback); - let data = (&*boxed_callback as *const F).cast_mut().cast(); + let data = ptr::from_ref(&*boxed_callback).cast_mut().cast(); unsafe { c_ares_sys::ares_set_server_state_callback( self.ares_channel, @@ -987,11 +984,11 @@ impl Channel { let c_addr = match *address { IpAddr::V4(v4) => { in_addr = ipv4_as_in_addr(v4); - (&in_addr as *const c_types::in_addr).cast() + ptr::from_ref(&in_addr).cast() } IpAddr::V6(ref v6) => { in6_addr = ipv6_as_in6_addr(v6); - (&in6_addr as *const c_types::in6_addr).cast() + ptr::from_ref(&in6_addr).cast() } }; let (family, length) = match *address { @@ -1047,11 +1044,11 @@ impl Channel { let c_addr = match *address { SocketAddr::V4(ref v4) => { sockaddr_in = socket_addrv4_as_sockaddr_in(v4); - (&sockaddr_in as *const c_types::sockaddr_in).cast() + ptr::from_ref(&sockaddr_in).cast() } SocketAddr::V6(ref v6) => { sockaddr_in6 = socket_addrv6_as_sockaddr_in6(v6); - (&sockaddr_in6 as *const c_types::sockaddr_in6).cast() + ptr::from_ref(&sockaddr_in6).cast() } }; let length = match *address { diff --git a/src/hostent.rs b/src/hostent.rs index d64601686..6d250ff28 100644 --- a/src/hostent.rs +++ b/src/hostent.rs @@ -1,9 +1,8 @@ use std::ffi::CStr; -use std::fmt; use std::marker::PhantomData; use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; use std::os::raw::c_char; -use std::slice; +use std::{fmt, ptr, slice}; use itertools::Itertools; @@ -161,7 +160,7 @@ impl<'a> Iterator for HostAddressResultsIter<'a> { None } else { unsafe { - self.next = &*(self.next as *const *const c_char).offset(1); + self.next = &*ptr::from_ref(self.next).offset(1); self.family .and_then(|family| ip_address_from_bytes(family, h_addr.cast())) } @@ -190,7 +189,7 @@ impl<'a> Iterator for HostAliasResultsIter<'a> { None } else { unsafe { - self.next = &*(self.next as *const *const c_char).offset(1); + self.next = &*ptr::from_ref(self.next).offset(1); let c_str = CStr::from_ptr(h_alias); Some(c_str) }