Skip to content

Commit 28f547f

Browse files
Merge #1447
1447: Expose SockAddr::from_raw_sockaddr r=asomers a=coolreader18 I also noticed the `SockAddr/InetAddr::to_str` functions were entirely redundant - `ToString` exists for that, & has a blanket impl on `T: Display`. Co-authored-by: Noah <33094578+coolreader18@users.noreply.github.com>
2 parents 426b09a + ed43d2c commit 28f547f

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).
2828
(#[1490](https://github.com/nix-rust/nix/pull/1490))
2929
- Added the `PTRACE_EVENT_STOP` variant to the `sys::ptrace::Event` enum
3030
(#[1335](https://github.com/nix-rust/nix/pull/1335))
31+
- Exposed `SockAddr::from_raw_sockaddr`
32+
(#[1447](https://github.com/nix-rust/nix/pull/1447))
3133

3234
### Changed
3335

src/ifaddrs.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ impl InterfaceAddress {
4646
/// Create an `InterfaceAddress` from the libc struct.
4747
fn from_libc_ifaddrs(info: &libc::ifaddrs) -> InterfaceAddress {
4848
let ifname = unsafe { ffi::CStr::from_ptr(info.ifa_name) };
49-
let address = unsafe { SockAddr::from_libc_sockaddr(info.ifa_addr) };
50-
let netmask = unsafe { SockAddr::from_libc_sockaddr(info.ifa_netmask) };
49+
let address = unsafe { SockAddr::from_raw_sockaddr(info.ifa_addr) };
50+
let netmask = unsafe { SockAddr::from_raw_sockaddr(info.ifa_netmask) };
5151
let mut addr = InterfaceAddress {
5252
interface_name: ifname.to_string_lossy().to_string(),
5353
flags: InterfaceFlags::from_bits_truncate(info.ifa_flags as i32),
@@ -59,9 +59,9 @@ impl InterfaceAddress {
5959

6060
let ifu = get_ifu_from_sockaddr(info);
6161
if addr.flags.contains(InterfaceFlags::IFF_POINTOPOINT) {
62-
addr.destination = unsafe { SockAddr::from_libc_sockaddr(ifu) };
62+
addr.destination = unsafe { SockAddr::from_raw_sockaddr(ifu) };
6363
} else if addr.flags.contains(InterfaceFlags::IFF_BROADCAST) {
64-
addr.broadcast = unsafe { SockAddr::from_libc_sockaddr(ifu) };
64+
addr.broadcast = unsafe { SockAddr::from_raw_sockaddr(ifu) };
6565
}
6666

6767
addr

src/sys/socket/addr.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ impl SockAddr {
738738
/// unsafe because it takes a raw pointer as argument. The caller must
739739
/// ensure that the pointer is valid.
740740
#[cfg(not(target_os = "fuchsia"))]
741-
pub(crate) unsafe fn from_libc_sockaddr(addr: *const libc::sockaddr) -> Option<SockAddr> {
741+
pub unsafe fn from_raw_sockaddr(addr: *const libc::sockaddr) -> Option<SockAddr> {
742742
if addr.is_null() {
743743
None
744744
} else {
@@ -1317,7 +1317,7 @@ mod tests {
13171317
fn test_macos_loopback_datalink_addr() {
13181318
let bytes = [20i8, 18, 1, 0, 24, 3, 0, 0, 108, 111, 48, 0, 0, 0, 0, 0];
13191319
let sa = bytes.as_ptr() as *const libc::sockaddr;
1320-
let _sock_addr = unsafe { SockAddr::from_libc_sockaddr(sa) };
1320+
let _sock_addr = unsafe { SockAddr::from_raw_sockaddr(sa) };
13211321
assert!(_sock_addr.is_none());
13221322
}
13231323

@@ -1332,7 +1332,7 @@ mod tests {
13321332
let bytes = [20i8, 18, 7, 0, 6, 3, 6, 0, 101, 110, 48, 24, 101, -112, -35, 76, -80];
13331333
let ptr = bytes.as_ptr();
13341334
let sa = ptr as *const libc::sockaddr;
1335-
let _sock_addr = unsafe { SockAddr::from_libc_sockaddr(sa) };
1335+
let _sock_addr = unsafe { SockAddr::from_raw_sockaddr(sa) };
13361336

13371337
assert!(_sock_addr.is_some());
13381338

@@ -1354,7 +1354,7 @@ mod tests {
13541354
let bytes = [25u8, 0, 0, 0, 6, 0, 6, 0, 24, 101, 144, 221, 76, 176];
13551355
let ptr = bytes.as_ptr();
13561356
let sa = ptr as *const libc::sockaddr;
1357-
let _sock_addr = unsafe { SockAddr::from_libc_sockaddr(sa) };
1357+
let _sock_addr = unsafe { SockAddr::from_raw_sockaddr(sa) };
13581358

13591359
assert!(_sock_addr.is_some());
13601360

0 commit comments

Comments
 (0)