X-Git-Url: https://code.octet-stream.net/netwatcher/blobdiff_plain/7cbddf0b21f7cf98b46c66a430eb8221f3622d55..18f2e52c414d1c98bbca61288b35f8b43cec9f8b:/src/list_unix.rs?ds=inline diff --git a/src/list_unix.rs b/src/list_unix.rs index 45ffc63..4a49140 100644 --- a/src/list_unix.rs +++ b/src/list_unix.rs @@ -13,11 +13,12 @@ struct CandidateInterface { } pub(crate) fn list_interfaces() -> Result { - let addrs = getifaddrs().map_err(|_| Error::Internal)?; + let addrs = getifaddrs().map_err(|e| Error::Getifaddrs(e.to_string()))?; let mut candidates = HashMap::new(); for addr in addrs { - let index = if_nametoindex(addr.interface_name.as_str()).map_err(|_| Error::Internal)?; + let index = if_nametoindex(addr.interface_name.as_str()) + .map_err(|e| Error::GetInterfaceName(e.to_string()))?; let candidate = candidates .entry(addr.interface_name.clone()) .or_insert_with(|| CandidateInterface { @@ -62,11 +63,11 @@ pub(crate) fn list_interfaces() -> Result { fn format_mac(bytes: &[u8]) -> Result { let mut mac = String::with_capacity(bytes.len() * 3); - for i in 0..bytes.len() { + for (i, b) in bytes.iter().enumerate() { if i != 0 { - write!(mac, ":").map_err(|_| Error::Internal)?; + write!(mac, ":").map_err(|_| Error::FormatMacAddress)?; } - write!(mac, "{:02X}", bytes[i]).map_err(|_| Error::Internal)?; + write!(mac, "{:02X}", b).map_err(|_| Error::FormatMacAddress)?; } Ok(mac) }