Skip to content

Commit 202e408

Browse files
committed
Expose SockAddr::from_raw_sockaddr
1 parent 7207004 commit 202e408

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
@@ -26,6 +26,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).
2626
(#[1422](https://github.com/nix-rust/nix/pull/1422))
2727
- Added `IP6T_SO_ORIGINAL_DST` sockopt.
2828
(#[1490](https://github.com/nix-rust/nix/pull/1490))
29+
- Exposed `SockAddr::from_raw_sockaddr`
30+
(#[1447](https://github.com/nix-rust/nix/pull/1447))
2931

3032
### Changed
3133

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
@@ -736,7 +736,7 @@ impl SockAddr {
736736
/// unsafe because it takes a raw pointer as argument. The caller must
737737
/// ensure that the pointer is valid.
738738
#[cfg(not(target_os = "fuchsia"))]
739-
pub(crate) unsafe fn from_libc_sockaddr(addr: *const libc::sockaddr) -> Option<SockAddr> {
739+
pub unsafe fn from_raw_sockaddr(addr: *const libc::sockaddr) -> Option<SockAddr> {
740740
if addr.is_null() {
741741
None
742742
} else {
@@ -1315,7 +1315,7 @@ mod tests {
13151315
fn test_macos_loopback_datalink_addr() {
13161316
let bytes = [20i8, 18, 1, 0, 24, 3, 0, 0, 108, 111, 48, 0, 0, 0, 0, 0];
13171317
let sa = bytes.as_ptr() as *const libc::sockaddr;
1318-
let _sock_addr = unsafe { SockAddr::from_libc_sockaddr(sa) };
1318+
let _sock_addr = unsafe { SockAddr::from_raw_sockaddr(sa) };
13191319
assert!(_sock_addr.is_none());
13201320
}
13211321

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

13351335
assert!(_sock_addr.is_some());
13361336

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

13571357
assert!(_sock_addr.is_some());
13581358

0 commit comments

Comments
 (0)