diff --git a/Cargo.toml b/Cargo.toml index 92bbd0f..07f35f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ license = 'MIT OR Apache-2.0' keywords = ['multicast'] [dependencies] -get_if_addrs = '0.5.3' +if-addrs = '0.6' [dependencies.socket2] version = '0.3.12' @@ -25,4 +25,4 @@ features = ['mswsock', 'iphlpapi'] version = '0.18.0' [target.'cfg(not(windows))'.dependencies.libc] -version = '0.2.76' \ No newline at end of file +version = '0.2.76' diff --git a/src/unix.rs b/src/unix.rs index feb4294..22378a3 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -67,17 +67,17 @@ pub struct Message { /// The crate `get_if_addrs` is archived and I don't have bandwidth to fork it /// So this is a hotfix #[cfg(target_arch = "mips")] -fn reverse_interface(interface: get_if_addrs::Interface) -> get_if_addrs::Interface { - get_if_addrs::Interface { +fn reverse_interface(interface: if_addrs::Interface) -> if_addrs::Interface { + if_addrs::Interface { name: interface.name, addr: match interface.addr { - get_if_addrs::IfAddr::V4(v4) => { - let reversed = get_if_addrs::Ifv4Addr { + if_addrs::IfAddr::V4(v4) => { + let reversed = if_addrs::Ifv4Addr { ip: reverse_address(v4.ip), netmask: reverse_address(v4.netmask), broadcast: v4.broadcast.map(reverse_address), }; - get_if_addrs::IfAddr::V4(reversed) + if_addrs::IfAddr::V4(reversed) } addr => addr, }, @@ -93,11 +93,9 @@ fn reverse_address(v4: Ipv4Addr) -> Ipv4Addr { pub fn all_ipv4_interfaces() -> io::Result> { #[cfg(not(target_arch = "mips"))] - let interfaces = get_if_addrs::get_if_addrs()?.into_iter(); + let interfaces = if_addrs::get_if_addrs()?.into_iter(); #[cfg(target_arch = "mips")] - let interfaces = get_if_addrs::get_if_addrs()? - .into_iter() - .map(reverse_interface); + let interfaces = if_addrs::get_if_addrs()?.into_iter().map(reverse_interface); let ipv4_interfaces = interfaces .filter_map(|i| match i.ip() { diff --git a/src/win.rs b/src/win.rs index a838b40..a9ba20c 100644 --- a/src/win.rs +++ b/src/win.rs @@ -246,7 +246,7 @@ const PKTINFO_DATA_SIZE: usize = mem::size_of::(); const CONTROL_PKTINFO_BUFFER_SIZE: usize = CMSG_HEADER_SIZE + PKTINFO_DATA_SIZE; pub fn all_ipv4_interfaces() -> io::Result> { - let interfaces = get_if_addrs::get_if_addrs()? + let interfaces = if_addrs::get_if_addrs()? .into_iter() .filter_map(|i| match i.ip() { std::net::IpAddr::V4(v4) => Some(v4),