Skip to content

Commit 19037c3

Browse files
authored
Rename SocketAddrAny::len to SocketAddrAny::addr_len. (#1326)
This better reflects how it returns `SocketAddrLen` instead of `usize`. And rewrite several `as _` casts to make them more explicit.
1 parent 40ed9ed commit 19037c3

9 files changed

Lines changed: 32 additions & 28 deletions

File tree

src/backend/libc/net/addr.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ impl SocketAddrUnix {
9393
Self {
9494
unix: Self::init(),
9595
#[cfg(not(any(bsd, target_os = "haiku")))]
96-
len: offsetof_sun_path() as _,
96+
len: offsetof_sun_path() as c::socklen_t,
9797
}
9898
}
9999

@@ -155,11 +155,11 @@ impl SocketAddrUnix {
155155
pub(crate) fn addr_len(&self) -> SocketAddrLen {
156156
#[cfg(not(any(bsd, target_os = "haiku")))]
157157
{
158-
self.len as _
158+
bitcast!(self.len)
159159
}
160160
#[cfg(any(bsd, target_os = "haiku"))]
161161
{
162-
c::socklen_t::from(self.unix.sun_len) as _
162+
bitcast!(c::socklen_t::from(self.unix.sun_len))
163163
}
164164
}
165165

src/backend/libc/net/msghdr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ pub(crate) unsafe fn with_msghdr<R>(
164164
addr.with_sockaddr(|addr_ptr, addr_len| {
165165
let mut h = zero_msghdr();
166166
h.msg_name = addr_ptr as *mut _;
167-
h.msg_namelen = addr_len as _;
167+
h.msg_namelen = bitcast!(addr_len);
168168
h.msg_iov = iov.as_ptr() as _;
169169
h.msg_iovlen = msg_iov_len(iov.len());
170170
h.msg_control = control.as_control_ptr().cast();

src/backend/libc/net/read_sockaddr.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ pub(crate) fn read_sockaddr_v4(addr: &SocketAddrAny) -> Result<SocketAddrV4, Err
150150
if addr.address_family() != AddressFamily::INET {
151151
return Err(Errno::AFNOSUPPORT);
152152
}
153-
assert!(addr.len() as usize >= size_of::<c::sockaddr_in>());
153+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in>());
154154
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in>() };
155155
Ok(SocketAddrV4::new(
156156
Ipv4Addr::from(u32::from_be(in_addr_s_addr(decode.sin_addr))),
@@ -163,7 +163,7 @@ pub(crate) fn read_sockaddr_v6(addr: &SocketAddrAny) -> Result<SocketAddrV6, Err
163163
if addr.address_family() != AddressFamily::INET6 {
164164
return Err(Errno::AFNOSUPPORT);
165165
}
166-
assert!(addr.len() as usize >= size_of::<c::sockaddr_in6>());
166+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in6>());
167167
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in6>() };
168168
Ok(SocketAddrV6::new(
169169
Ipv6Addr::from(in6_addr_s6_addr(decode.sin6_addr)),
@@ -181,7 +181,7 @@ pub(crate) fn read_sockaddr_unix(addr: &SocketAddrAny) -> Result<SocketAddrUnix,
181181
}
182182

183183
let offsetof_sun_path = super::addr::offsetof_sun_path();
184-
let len = addr.len() as usize;
184+
let len = addr.addr_len() as usize;
185185

186186
assert!(len >= offsetof_sun_path);
187187

@@ -237,7 +237,7 @@ pub(crate) fn read_sockaddr_xdp(addr: &SocketAddrAny) -> Result<SocketAddrXdp, E
237237
if addr.address_family() != AddressFamily::XDP {
238238
return Err(Errno::AFNOSUPPORT);
239239
}
240-
assert!(addr.len() as usize >= size_of::<c::sockaddr_xdp>());
240+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_xdp>());
241241
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_xdp>() };
242242
Ok(SocketAddrXdp::new(
243243
SockaddrXdpFlags::from_bits_retain(decode.sxdp_flags),
@@ -253,7 +253,7 @@ pub(crate) fn read_sockaddr_netlink(addr: &SocketAddrAny) -> Result<SocketAddrNe
253253
if addr.address_family() != AddressFamily::NETLINK {
254254
return Err(Errno::AFNOSUPPORT);
255255
}
256-
assert!(addr.len() as usize >= size_of::<c::sockaddr_nl>());
256+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_nl>());
257257
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_nl>() };
258258
Ok(SocketAddrNetlink::new(decode.nl_pid, decode.nl_groups))
259259
}

src/backend/libc/net/syscalls.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ pub(crate) fn sendto(
8989
send_recv_len(buf.len()),
9090
bitflags_bits!(flags),
9191
addr_ptr.cast(),
92-
addr_len as _,
92+
bitcast!(addr_len),
9393
))
9494
})
9595
}
@@ -135,7 +135,11 @@ pub(crate) fn socket_with(
135135
pub(crate) fn bind(sockfd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
136136
unsafe {
137137
addr.with_sockaddr(|addr_ptr, addr_len| {
138-
ret(c::bind(borrowed_fd(sockfd), addr_ptr.cast(), addr_len as _))
138+
ret(c::bind(
139+
borrowed_fd(sockfd),
140+
addr_ptr.cast(),
141+
bitcast!(addr_len),
142+
))
139143
})
140144
}
141145
}
@@ -146,7 +150,7 @@ pub(crate) fn connect(sockfd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::
146150
ret(c::connect(
147151
borrowed_fd(sockfd),
148152
addr_ptr.cast(),
149-
addr_len as _,
153+
bitcast!(addr_len),
150154
))
151155
})
152156
}

src/backend/linux_raw/net/addr.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ impl SocketAddrUnix {
3939
return Err(io::Errno::NAMETOOLONG);
4040
}
4141
for (i, b) in bytes.iter().enumerate() {
42-
unix.sun_path[i] = *b as _;
42+
unix.sun_path[i] = bitcast!(*b);
4343
}
4444
let len = offsetof_sun_path() + bytes.len();
4545
let len = len.try_into().unwrap();
@@ -81,7 +81,7 @@ impl SocketAddrUnix {
8181
Self {
8282
unix: Self::init(),
8383
#[cfg(not(any(bsd, target_os = "haiku")))]
84-
len: offsetof_sun_path() as _,
84+
len: offsetof_sun_path() as SocketAddrLen,
8585
}
8686
}
8787

@@ -123,7 +123,7 @@ impl SocketAddrUnix {
123123

124124
#[inline]
125125
pub(crate) fn addr_len(&self) -> SocketAddrLen {
126-
self.len as _
126+
bitcast!(self.len)
127127
}
128128

129129
#[inline]

src/backend/linux_raw/net/msghdr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ pub(crate) unsafe fn with_recv_msghdr<R>(
5959
control.set_control_len(msghdr.msg_controllen as usize);
6060
}
6161

62-
name.len = msghdr.msg_namelen as _;
62+
name.len = bitcast!(msghdr.msg_namelen);
6363

6464
res
6565
}
@@ -105,7 +105,7 @@ pub(crate) unsafe fn with_msghdr<R>(
105105
// beyond the call to `with_sockaddr`.
106106
let mut msghdr = noaddr_msghdr(iov, control);
107107
msghdr.msg_name = addr_ptr as _;
108-
msghdr.msg_namelen = addr_len as _;
108+
msghdr.msg_namelen = bitcast!(addr_len);
109109

110110
f(&msghdr)
111111
})

src/backend/linux_raw/net/read_sockaddr.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ pub(crate) fn read_sockaddr_v4(addr: &SocketAddrAny) -> Result<SocketAddrV4, Err
6464
if addr.address_family() != AddressFamily::INET {
6565
return Err(Errno::AFNOSUPPORT);
6666
}
67-
assert!(addr.len() as usize >= size_of::<c::sockaddr_in>());
67+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in>());
6868
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in>() };
6969
Ok(SocketAddrV4::new(
7070
Ipv4Addr::from(u32::from_be(decode.sin_addr.s_addr)),
@@ -77,7 +77,7 @@ pub(crate) fn read_sockaddr_v6(addr: &SocketAddrAny) -> Result<SocketAddrV6, Err
7777
if addr.address_family() != AddressFamily::INET6 {
7878
return Err(Errno::AFNOSUPPORT);
7979
}
80-
assert!(addr.len() as usize >= size_of::<c::sockaddr_in6>());
80+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in6>());
8181
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in6>() };
8282
Ok(SocketAddrV6::new(
8383
Ipv6Addr::from(unsafe { decode.sin6_addr.in6_u.u6_addr8 }),
@@ -93,7 +93,7 @@ pub(crate) fn read_sockaddr_unix(addr: &SocketAddrAny) -> Result<SocketAddrUnix,
9393
return Err(Errno::AFNOSUPPORT);
9494
}
9595
let offsetof_sun_path = super::addr::offsetof_sun_path();
96-
let len = addr.len() as usize;
96+
let len = addr.addr_len() as usize;
9797

9898
assert!(len >= offsetof_sun_path);
9999

@@ -130,7 +130,7 @@ pub(crate) fn read_sockaddr_xdp(addr: &SocketAddrAny) -> Result<SocketAddrXdp, E
130130
if addr.address_family() != AddressFamily::XDP {
131131
return Err(Errno::AFNOSUPPORT);
132132
}
133-
assert!(addr.len() as usize >= size_of::<c::sockaddr_xdp>());
133+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_xdp>());
134134
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_xdp>() };
135135
Ok(SocketAddrXdp::new(
136136
SockaddrXdpFlags::from_bits_retain(decode.sxdp_flags),
@@ -145,7 +145,7 @@ pub(crate) fn read_sockaddr_netlink(addr: &SocketAddrAny) -> Result<SocketAddrNe
145145
if addr.address_family() != AddressFamily::NETLINK {
146146
return Err(Errno::AFNOSUPPORT);
147147
}
148-
assert!(addr.len() as usize >= size_of::<c::sockaddr_nl>());
148+
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_nl>());
149149
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_nl>() };
150150
Ok(SocketAddrNetlink::new(decode.nl_pid, decode.nl_groups))
151151
}

src/net/send_recv/msg.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ impl<'buf, 'slice, 'fd> SendAncillaryBuffer<'buf, 'slice, 'fd> {
319319
// Get the pointer to the payload and copy the data.
320320
unsafe {
321321
let payload = c::CMSG_DATA(last_header);
322-
ptr::copy_nonoverlapping(source.as_ptr(), payload, source_len as _);
322+
ptr::copy_nonoverlapping(source.as_ptr(), payload, source_len as usize);
323323
}
324324

325325
true
@@ -626,7 +626,7 @@ impl<'a> MMsgHdr<'a> {
626626
// give us a pointer directly, so we use that.
627627
let mut msghdr = noaddr_msghdr(iov, control);
628628
msghdr.msg_name = addr.as_ptr() as _;
629-
msghdr.msg_namelen = addr.len() as _;
629+
msghdr.msg_namelen = bitcast!(addr.addr_len());
630630

631631
Self::wrap(msghdr)
632632
}
@@ -644,7 +644,7 @@ impl<'a> MMsgHdr<'a> {
644644
/// Returns the number of bytes sent. This will return 0 until after a
645645
/// successful call to [sendmmsg].
646646
pub fn bytes_sent(&self) -> usize {
647-
self.raw.msg_len as _
647+
self.raw.msg_len as usize
648648
}
649649
}
650650

src/net/socket_addr_any.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ impl SocketAddrAny {
138138

139139
/// Returns the length of the encoded sockaddr.
140140
#[inline]
141-
pub fn len(&self) -> SocketAddrLen {
141+
pub fn addr_len(&self) -> SocketAddrLen {
142142
self.len.get()
143143
}
144144
}
@@ -206,7 +206,7 @@ impl fmt::Debug for SocketAddrAny {
206206

207207
f.debug_struct("SocketAddrAny")
208208
.field("address_family", &self.address_family())
209-
.field("namelen", &self.len())
209+
.field("namelen", &self.addr_len())
210210
.finish()
211211
}
212212
}
@@ -217,7 +217,7 @@ unsafe impl SocketAddrArg for SocketAddrAny {
217217
&self,
218218
f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
219219
) -> R {
220-
f(self.as_ptr().cast(), self.len())
220+
f(self.as_ptr().cast(), self.addr_len())
221221
}
222222
}
223223

0 commit comments

Comments
 (0)