Skip to content

Commit 71e2359

Browse files
committed
Rename SockAddr -> SocketAddrArg, SockAddrRaw -> SocketAddrOpaque
1 parent 6f6ed44 commit 71e2359

File tree

11 files changed

+48
-45
lines changed

11 files changed

+48
-45
lines changed

src/backend/libc/net/msghdr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::backend::c;
77
use crate::backend::conv::{msg_control_len, msg_iov_len};
88

99
use crate::io::{self, IoSlice, IoSliceMut};
10-
use crate::net::{RecvAncillaryBuffer, SendAncillaryBuffer, SockAddr};
10+
use crate::net::{RecvAncillaryBuffer, SendAncillaryBuffer, SocketAddrArg};
1111

1212
use core::mem::{size_of, zeroed, MaybeUninit};
1313

@@ -62,7 +62,7 @@ pub(crate) fn with_noaddr_msghdr<R>(
6262

6363
/// Create a message header intended to send with the specified address.
6464
pub(crate) fn with_msghdr<R>(
65-
addr: &impl SockAddr,
65+
addr: &impl SocketAddrArg,
6666
iov: &[IoSlice<'_>],
6767
control: &mut SendAncillaryBuffer<'_, '_, '_>,
6868
f: impl FnOnce(c::msghdr) -> R,

src/backend/libc/net/syscalls.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::backend::c;
44
use crate::backend::conv::{borrowed_fd, ret, ret_owned_fd, ret_send_recv, send_recv_len};
55
use crate::fd::{BorrowedFd, OwnedFd};
66
use crate::io;
7-
use crate::net::{SockAddr, SocketAddrAny};
7+
use crate::net::{SocketAddrAny, SocketAddrArg};
88
use crate::utils::as_ptr;
99
use core::mem::{size_of, MaybeUninit};
1010
#[cfg(not(any(
@@ -90,7 +90,7 @@ pub(crate) fn sendto(
9090
fd: BorrowedFd<'_>,
9191
buf: &[u8],
9292
flags: SendFlags,
93-
addr: &impl SockAddr,
93+
addr: &impl SocketAddrArg,
9494
) -> io::Result<usize> {
9595
unsafe {
9696
addr.with_sockaddr(|addr_ptr, addr_len| {
@@ -146,7 +146,7 @@ pub(crate) fn socket_with(
146146
}
147147

148148
#[cfg(not(any(target_os = "redox", target_os = "wasi")))]
149-
pub(crate) fn bind(sockfd: BorrowedFd<'_>, addr: &impl SockAddr) -> io::Result<()> {
149+
pub(crate) fn bind(sockfd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
150150
unsafe {
151151
addr.with_sockaddr(|addr_ptr, addr_len| {
152152
ret(c::bind(
@@ -159,7 +159,7 @@ pub(crate) fn bind(sockfd: BorrowedFd<'_>, addr: &impl SockAddr) -> io::Result<(
159159
}
160160

161161
#[cfg(not(any(target_os = "redox", target_os = "wasi")))]
162-
pub(crate) fn connect(sockfd: BorrowedFd<'_>, addr: &impl SockAddr) -> io::Result<()> {
162+
pub(crate) fn connect(sockfd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
163163
unsafe {
164164
addr.with_sockaddr(|addr_ptr, addr_len| {
165165
ret(c::connect(
@@ -266,7 +266,7 @@ pub(crate) fn sendmsg(
266266
)))]
267267
pub(crate) fn sendmsg_addr(
268268
sockfd: BorrowedFd<'_>,
269-
addr: &impl SockAddr,
269+
addr: &impl SocketAddrArg,
270270
iov: &[IoSlice<'_>],
271271
control: &mut SendAncillaryBuffer<'_, '_, '_>,
272272
msg_flags: SendFlags,

src/backend/linux_raw/net/msghdr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use crate::backend::c;
99

1010
use crate::io::{self, IoSlice, IoSliceMut};
11-
use crate::net::{RecvAncillaryBuffer, SendAncillaryBuffer, SockAddr};
11+
use crate::net::{RecvAncillaryBuffer, SendAncillaryBuffer, SocketAddrArg};
1212

1313
use core::mem::{size_of, MaybeUninit};
1414
use core::ptr::null_mut;
@@ -74,7 +74,7 @@ pub(crate) fn with_noaddr_msghdr<R>(
7474

7575
/// Create a message header intended to send with the specified address
7676
pub(crate) fn with_msghdr<R>(
77-
addr: &impl SockAddr,
77+
addr: &impl SocketAddrArg,
7878
iov: &[IoSlice<'_>],
7979
control: &mut SendAncillaryBuffer<'_, '_, '_>,
8080
f: impl FnOnce(c::msghdr) -> R,

src/backend/linux_raw/net/syscalls.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use crate::fd::{BorrowedFd, OwnedFd};
1818
use crate::io::{self, IoSlice, IoSliceMut};
1919
use crate::net::{
2020
AddressFamily, Protocol, RecvAncillaryBuffer, RecvMsgReturn, SendAncillaryBuffer, Shutdown,
21-
SockAddr, SocketAddrAny, SocketFlags, SocketType,
21+
SocketAddrAny, SocketAddrArg, SocketFlags, SocketType,
2222
};
2323
use c::{sockaddr_storage, socklen_t};
2424
use core::mem::MaybeUninit;
@@ -323,7 +323,7 @@ pub(crate) fn sendmsg(
323323
#[inline]
324324
pub(crate) fn sendmsg_addr(
325325
sockfd: BorrowedFd<'_>,
326-
addr: &impl SockAddr,
326+
addr: &impl SocketAddrArg,
327327
iov: &[IoSlice<'_>],
328328
control: &mut SendAncillaryBuffer<'_, '_, '_>,
329329
msg_flags: SendFlags,
@@ -425,7 +425,7 @@ pub(crate) fn sendto(
425425
fd: BorrowedFd<'_>,
426426
buf: &[u8],
427427
flags: SendFlags,
428-
addr: &impl SockAddr,
428+
addr: &impl SocketAddrArg,
429429
) -> io::Result<usize> {
430430
let (buf_addr, buf_len) = slice(buf);
431431

@@ -633,7 +633,7 @@ pub(crate) fn getsockname(fd: BorrowedFd<'_>) -> io::Result<SocketAddrAny> {
633633
}
634634

635635
#[inline]
636-
pub(crate) fn bind(fd: BorrowedFd<'_>, addr: &impl SockAddr) -> io::Result<()> {
636+
pub(crate) fn bind(fd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
637637
addr.with_sockaddr(|addr_ptr, addr_len| {
638638
#[cfg(not(target_arch = "x86"))]
639639
unsafe {
@@ -660,7 +660,7 @@ pub(crate) fn bind(fd: BorrowedFd<'_>, addr: &impl SockAddr) -> io::Result<()> {
660660
}
661661

662662
#[inline]
663-
pub(crate) fn connect(fd: BorrowedFd<'_>, addr: &impl SockAddr) -> io::Result<()> {
663+
pub(crate) fn connect(fd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
664664
addr.with_sockaddr(|addr_ptr, addr_len| {
665665
#[cfg(not(target_arch = "x86"))]
666666
unsafe {

src/net/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ pub use crate::maybe_polyfill::net::{
2727
pub use send_recv::*;
2828
pub use socket::*;
2929
pub use socket_addr_any::{SocketAddrAny, SocketAddrStorage};
30-
pub use socket_address::{SockAddr, SockAddrRaw};
30+
pub use socket_address::{SocketAddrArg, SocketAddrOpaque};
3131
#[cfg(not(any(windows, target_os = "wasi")))]
3232
pub use socketpair::socketpair;
3333
pub use types::*;

src/net/send_recv/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ mod msg;
3333
)))]
3434
pub use msg::*;
3535

36-
use super::SockAddr;
36+
use super::SocketAddrArg;
3737

3838
/// `recv(fd, buf, flags)`—Reads data from a socket.
3939
///
@@ -227,7 +227,7 @@ pub fn sendto<Fd: AsFd>(
227227
fd: Fd,
228228
buf: &[u8],
229229
flags: SendFlags,
230-
addr: &impl SockAddr,
230+
addr: &impl SocketAddrArg,
231231
) -> io::Result<usize> {
232232
backend::net::syscalls::sendto(fd.as_fd(), buf, flags, addr)
233233
}

src/net/send_recv/msg.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use crate::backend::{self, c};
66
use crate::fd::{AsFd, BorrowedFd, OwnedFd};
77
use crate::io::{self, IoSlice, IoSliceMut};
8-
use crate::net::SockAddr;
8+
use crate::net::SocketAddrArg;
99
#[cfg(linux_kernel)]
1010
use crate::net::UCred;
1111
#[cfg(feature = "std")]
@@ -651,7 +651,7 @@ pub fn sendmsg<Fd: AsFd>(
651651
#[inline]
652652
pub fn sendmsg_addr(
653653
socket: impl AsFd,
654-
addr: &impl SockAddr,
654+
addr: &impl SocketAddrArg,
655655
iov: &[IoSlice<'_>],
656656
control: &mut SendAncillaryBuffer<'_, '_, '_>,
657657
flags: SendFlags,

src/net/socket.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ pub use crate::net::{AddressFamily, Protocol, Shutdown, SocketFlags, SocketType}
99
#[cfg(unix)]
1010
pub use backend::net::addr::SocketAddrUnix;
1111

12-
use super::SockAddr;
12+
use super::SocketAddrArg;
1313

1414
/// `socket(domain, type_, protocol)`—Creates a socket.
1515
///
@@ -124,7 +124,7 @@ pub fn socket_with(
124124
/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=bind&section=2
125125
/// [illumos]: https://illumos.org/man/3SOCKET/bind
126126
/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Setting-Address.html
127-
pub fn bind<Fd: AsFd>(sockfd: Fd, addr: &impl SockAddr) -> io::Result<()> {
127+
pub fn bind<Fd: AsFd>(sockfd: Fd, addr: &impl SocketAddrArg) -> io::Result<()> {
128128
backend::net::syscalls::bind(sockfd.as_fd(), addr)
129129
}
130130

@@ -303,7 +303,7 @@ pub fn bind_xdp<Fd: AsFd>(sockfd: Fd, addr: &SocketAddrXdp) -> io::Result<()> {
303303
/// [illumos]: https://illumos.org/man/3SOCKET/connect
304304
/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Connecting.html
305305
/// [`Errno::WOULDBLOCK`]: io::Errno::WOULDBLOCK
306-
pub fn connect<Fd: AsFd>(sockfd: Fd, addr: &impl SockAddr) -> io::Result<()> {
306+
pub fn connect<Fd: AsFd>(sockfd: Fd, addr: &impl SocketAddrArg) -> io::Result<()> {
307307
backend::net::syscalls::connect(sockfd.as_fd(), addr)
308308
}
309309

src/net/socket_addr_any.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ use crate::net::netlink::SocketAddrNetlink;
1515
use crate::net::xdp::SocketAddrXdp;
1616
#[cfg(unix)]
1717
use crate::net::SocketAddrUnix;
18-
use crate::net::{AddressFamily, SockAddr, SockAddrRaw, SocketAddr, SocketAddrV4, SocketAddrV6};
18+
use crate::net::{
19+
AddressFamily, SocketAddr, SocketAddrArg, SocketAddrOpaque, SocketAddrV4, SocketAddrV6,
20+
};
1921
use crate::{backend, io};
2022
#[cfg(feature = "std")]
2123
use core::fmt;
@@ -136,8 +138,8 @@ impl fmt::Debug for SocketAddrAny {
136138
}
137139
}
138140

139-
unsafe impl SockAddr for SocketAddrAny {
140-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R {
141+
unsafe impl SocketAddrArg for SocketAddrAny {
142+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R {
141143
match self {
142144
Self::V4(a) => a.with_sockaddr(f),
143145
Self::V6(a) => a.with_sockaddr(f),

src/net/socket_address.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,18 @@ use super::SocketAddrUnix;
1717
/// `sockaddr`-compatible C type, and then cast back to a `sockaddr` pointer
1818
/// to be passed to a system call.
1919
#[repr(C)]
20-
pub struct SockAddrRaw {
20+
pub struct SocketAddrOpaque {
2121
_data: [u8; 0],
2222
}
2323

2424
/// A trait abstracting over the types that can be passed as a `sockaddr`.
2525
///
26-
/// Safety: implementers of this trait must ensure that `with_sockaddr` calls
26+
/// # Safety
27+
/// Implementers of this trait must ensure that `with_sockaddr` calls
2728
/// `f` with a pointer that is readable for the passed length, and points
2829
/// to data that is a valid socket address for the system calls that accept
2930
/// `sockaddr` as a const pointer.
30-
pub unsafe trait SockAddr {
31+
pub unsafe trait SocketAddrArg {
3132
/// Call a closure with the pointer and length to the corresponding C type.
3233
///
3334
/// The API uses a closure so that:
@@ -36,43 +37,43 @@ pub unsafe trait SockAddr {
3637
/// C type can pass it directly without a copy.
3738
/// * Other socket types can construct their C-compatible struct on the
3839
/// stack and call the closure with a pointer to it.
39-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R;
40+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R;
4041
}
4142

42-
/// Helper for implementing SockAddr::with_sockaddr
43+
/// Helper for implementing SocketAddrArg::with_sockaddr
4344
pub(crate) fn call_with_sockaddr<A, R>(
4445
addr: &A,
45-
f: impl FnOnce(*const SockAddrRaw, usize) -> R,
46+
f: impl FnOnce(*const SocketAddrOpaque, usize) -> R,
4647
) -> R {
4748
let ptr = (addr as *const A).cast();
4849
let len = size_of::<A>();
4950
f(ptr, len)
5051
}
5152

52-
unsafe impl SockAddr for super::SocketAddr {
53-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R {
53+
unsafe impl SocketAddrArg for super::SocketAddr {
54+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R {
5455
match self {
5556
SocketAddr::V4(v4) => v4.with_sockaddr(f),
5657
SocketAddr::V6(v6) => v6.with_sockaddr(f),
5758
}
5859
}
5960
}
6061

61-
unsafe impl SockAddr for SocketAddrV4 {
62-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R {
62+
unsafe impl SocketAddrArg for SocketAddrV4 {
63+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R {
6364
call_with_sockaddr(&encode_sockaddr_v4(self), f)
6465
}
6566
}
6667

67-
unsafe impl SockAddr for SocketAddrV6 {
68-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R {
68+
unsafe impl SocketAddrArg for SocketAddrV6 {
69+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R {
6970
call_with_sockaddr(&encode_sockaddr_v6(self), f)
7071
}
7172
}
7273

7374
#[cfg(unix)]
74-
unsafe impl SockAddr for SocketAddrUnix {
75-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R {
75+
unsafe impl SocketAddrArg for SocketAddrUnix {
76+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R {
7677
f(
7778
(&self.unix as *const c::sockaddr_un).cast(),
7879
self.addr_len() as usize,

src/net/types.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,7 @@ pub mod netlink {
945945
use {
946946
super::{new_raw_protocol, Protocol},
947947
crate::backend::c,
948-
crate::net::{socket_address::call_with_sockaddr, SockAddr, SockAddrRaw},
948+
crate::net::{socket_address::call_with_sockaddr, SocketAddrArg, SocketAddrOpaque},
949949
core::mem,
950950
};
951951

@@ -1107,8 +1107,8 @@ pub mod netlink {
11071107

11081108
#[cfg(linux_kernel)]
11091109
#[allow(unsafe_code)]
1110-
unsafe impl SockAddr for SocketAddrNetlink {
1111-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R {
1110+
unsafe impl SocketAddrArg for SocketAddrNetlink {
1111+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R {
11121112
let mut addr: c::sockaddr_nl = unsafe { mem::zeroed() };
11131113
addr.nl_family = c::AF_NETLINK as _;
11141114
addr.nl_pid = self.pid;
@@ -1543,7 +1543,7 @@ bitflags! {
15431543
/// `AF_XDP` related types and constants.
15441544
#[cfg(target_os = "linux")]
15451545
pub mod xdp {
1546-
use crate::net::{socket_address::call_with_sockaddr, SockAddr, SockAddrRaw};
1546+
use crate::net::{socket_address::call_with_sockaddr, SocketAddrArg, SocketAddrOpaque};
15471547

15481548
use super::{bitflags, c};
15491549

@@ -1685,8 +1685,8 @@ pub mod xdp {
16851685
}
16861686

16871687
#[allow(unsafe_code)]
1688-
unsafe impl SockAddr for SocketAddrXdp {
1689-
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SockAddrRaw, usize) -> R) -> R {
1688+
unsafe impl SocketAddrArg for SocketAddrXdp {
1689+
fn with_sockaddr<R>(&self, f: impl FnOnce(*const SocketAddrOpaque, usize) -> R) -> R {
16901690
let addr = c::sockaddr_xdp {
16911691
sxdp_family: c::AF_XDP as _,
16921692
sxdp_flags: self.flags().bits(),

0 commit comments

Comments
 (0)