From a864c3e5e4afb4409994bd5069be025e05938b4f Mon Sep 17 00:00:00 2001 From: gongzhengyang Date: Tue, 5 Mar 2024 17:19:53 +0800 Subject: [PATCH] fix: fix cross compile error --- src/common.rs | 2 +- src/unix/apple/network.rs | 5 ++--- src/unix/freebsd/network.rs | 3 ++- src/unknown/network.rs | 1 + src/windows/network.rs | 2 ++ src/windows/network_helper.rs | 8 ++++---- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/common.rs b/src/common.rs index e18cf9c69..cc311a481 100644 --- a/src/common.rs +++ b/src/common.rs @@ -2337,7 +2337,7 @@ impl NetworkData { /// /// let mut networks = Networks::new_with_refreshed_list(); /// for (interface_name, network) in &networks { - /// println!("Ip Networks: {}", network.ip_networks()); + /// println!("Ip Networks: {:?}", network.ip_networks()); /// } /// ``` pub fn ip_networks(&self) -> &[IpNetwork] { diff --git a/src/unix/apple/network.rs b/src/unix/apple/network.rs index 6b1489691..d48f084c1 100644 --- a/src/unix/apple/network.rs +++ b/src/unix/apple/network.rs @@ -5,10 +5,9 @@ use libc::{self, c_char, if_msghdr2, CTL_NET, NET_RT_IFLIST2, PF_ROUTE, RTM_IFIN use std::collections::{hash_map, HashMap}; use std::ptr::null_mut; -use ipnetwork::IpNetwork; - use crate::common::MacAddr; use crate::network::refresh_networks_addresses; +use crate::IpNetwork; use crate::NetworkData; macro_rules! old_and_new { @@ -198,7 +197,7 @@ pub(crate) struct NetworkDataInner { /// MAC address pub(crate) mac_addr: MacAddr, /// IP networks - pub(crate) ip_networks: Vec, + pub(crate) ip_networks: Vec, } impl NetworkDataInner { diff --git a/src/unix/freebsd/network.rs b/src/unix/freebsd/network.rs index d144a797d..644eed90b 100644 --- a/src/unix/freebsd/network.rs +++ b/src/unix/freebsd/network.rs @@ -6,6 +6,7 @@ use std::mem::MaybeUninit; use super::utils; use crate::common::MacAddr; use crate::network::refresh_networks_addresses; +use crate::IpNetwork; use crate::NetworkData; macro_rules! old_and_new { @@ -151,7 +152,7 @@ pub(crate) struct NetworkDataInner { /// MAC address pub(crate) mac_addr: MacAddr, /// IP networks - pub(crate) ip_networks: Vec, + pub(crate) ip_networks: Vec, } impl NetworkDataInner { diff --git a/src/unknown/network.rs b/src/unknown/network.rs index 7a391d79e..917320a65 100644 --- a/src/unknown/network.rs +++ b/src/unknown/network.rs @@ -2,6 +2,7 @@ use crate::common::MacAddr; use crate::NetworkData; +use crate::IpNetwork; use std::collections::HashMap; diff --git a/src/windows/network.rs b/src/windows/network.rs index a0d09178b..e89db787d 100644 --- a/src/windows/network.rs +++ b/src/windows/network.rs @@ -2,6 +2,7 @@ use crate::common::MacAddr; use crate::network::refresh_networks_addresses; +use crate::IpNetwork; use crate::NetworkData; use std::collections::{hash_map, HashMap}; @@ -137,6 +138,7 @@ impl NetworksInner { errors_out: ptr.OutErrors, old_errors_out: ptr.OutErrors, mac_addr: MacAddr::UNSPECIFIED, + ip_networks: vec![], updated: true, }, }); diff --git a/src/windows/network_helper.rs b/src/windows/network_helper.rs index 9e951c01e..b3671a294 100644 --- a/src/windows/network_helper.rs +++ b/src/windows/network_helper.rs @@ -108,7 +108,7 @@ pub(crate) fn get_interface_address() -> Result HashMap> { +pub(crate) fn get_interface_ip_networks() -> HashMap> { ipconfig::get_adapters() .unwrap_or(vec![]) .into_iter() @@ -116,10 +116,10 @@ pub(crate) fn get_interface_ip_network() -> HashMap> { ( a.friendly_name().to_owned(), a.prefixes() - .into_iter() - .map(|(addr, prefix)| IpNetwork::new(addr, prefix)) + .iter() + .filter_map(|(addr, prefix)| IpNetwork::new(*addr, *prefix as u8).ok()) .collect(), ) }) - .collect(); + .collect() }