X-Git-Url: https://code.octet-stream.net/netwatcher/blobdiff_plain/9ea683eddb05362f02bca60e4337955dfc5871dc..d080463c3c86ac4729f5e0d99332b8f556811755:/src/list_win.rs?ds=sidebyside diff --git a/src/list_win.rs b/src/list_win.rs index 2ae79a6..00b7769 100644 --- a/src/list_win.rs +++ b/src/list_win.rs @@ -38,15 +38,15 @@ pub(crate) fn list_interfaces() -> Result { ); match WIN32_ERROR(res) { ERROR_SUCCESS => break, - ERROR_ADDRESS_NOT_ASSOCIATED => return Err(Error::Internal), + ERROR_ADDRESS_NOT_ASSOCIATED => return Err(Error::AddressNotAssociated), ERROR_BUFFER_OVERFLOW => { buf.resize(sizepointer as usize, 0); continue; } - ERROR_INVALID_PARAMETER => return Err(Error::Internal), - ERROR_NOT_ENOUGH_MEMORY => return Err(Error::Internal), + ERROR_INVALID_PARAMETER => return Err(Error::InvalidParameter), + ERROR_NOT_ENOUGH_MEMORY => return Err(Error::NotEnoughMemory), ERROR_NO_DATA => return Ok(List(HashMap::new())), // there aren't any - _ => return Err(Error::Internal), // TODO: Use FormatMessage to get a string + _ => return Err(Error::UnexpectedWindowsResult(res)), } } @@ -61,10 +61,10 @@ pub(crate) fn list_interfaces() -> Result { let mut hw_addr = String::with_capacity(adapter.PhysicalAddressLength as usize * 3); for i in 0..adapter.PhysicalAddressLength as usize { if i != 0 { - write!(hw_addr, ":").map_err(|_| Error::Internal)?; + write!(hw_addr, ":").map_err(|_| Error::FormatMacAddress)?; } write!(hw_addr, "{:02X}", adapter.PhysicalAddress[i]) - .map_err(|_| Error::Internal)?; + .map_err(|_| Error::FormatMacAddress)?; } let mut ips = vec![]; let mut unicast_ptr = adapter.FirstUnicastAddress; @@ -105,14 +105,3 @@ pub(crate) fn list_interfaces() -> Result { Ok(List(ifs)) } - -#[cfg(test)] -mod test { - use super::list_interfaces; - - #[test] - fn list() { - let ifaces = list_interfaces().unwrap().0; - println!("{:?}", ifaces); - } -}