From 6fafa97d619456e603e2970c0679316e20844db7 Mon Sep 17 00:00:00 2001 From: Luke Else Date: Wed, 26 Apr 2023 21:19:35 +0100 Subject: [PATCH] Made alterations to functions using IP to make it use new functions --- src/networking/ip.rs | 2 +- src/networking/mod.rs | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/networking/ip.rs b/src/networking/ip.rs index e8c2b76..1b64d0a 100644 --- a/src/networking/ip.rs +++ b/src/networking/ip.rs @@ -99,7 +99,7 @@ impl FromStr for IpAddr { Err(_) => return Err(NetworkingErr::InvalidIPErr) } } - Ok(IpAddr::V4(ip[0],ip[1],ip[2],ip[3])) + Ok(IpAddr::from_arr(&ip)?) } } diff --git a/src/networking/mod.rs b/src/networking/mod.rs index f04f1cc..fdd32d4 100644 --- a/src/networking/mod.rs +++ b/src/networking/mod.rs @@ -69,7 +69,8 @@ impl Network { /// let network_class = Network::get_network_class(&[127, 0, 0, 1])?; /// >>> NetworkClass::A /// ``` - fn get_network_class(network_address: &[u8; 4]) -> Result { + fn get_network_class(network_address: &IpAddr) -> Result { + let network_address = network_address.to_arr()?; if network_address[0] > 224 { return Err(NetworkingErr::InvalidIPErr) }else if network_address[0] >= 192 { @@ -112,7 +113,7 @@ impl Network { } } - Ok(IpAddr::V4(oct[0], oct[1], oct[2], oct[3])) + Ok(IpAddr::from_arr(&oct)?) } //pub fn generate_subnets(self) -> Vec {} } @@ -185,13 +186,13 @@ mod tests { #[test] fn test_network_class() { use super::*; - assert_eq!(Network::get_network_class(&IpAddr::V4(127, 0, 0, 1).to_arr().unwrap()).unwrap(), NetworkClass::A); - assert_eq!(Network::get_network_class(&IpAddr::V4(172, 6, 8, 10).to_arr().unwrap()).unwrap(), NetworkClass::B); - assert_eq!(Network::get_network_class(&IpAddr::V4(192, 168, 0, 1).to_arr().unwrap()).unwrap(), NetworkClass::C); - assert_eq!(Network::get_network_class(&IpAddr::V4(10, 6, 8, 10).to_arr().unwrap()).unwrap(), NetworkClass::A); - assert_eq!(Network::get_network_class(&IpAddr::V4(225, 255, 255, 255).to_arr().unwrap()).unwrap_err(), NetworkingErr::InvalidIPErr); - assert_eq!(Network::get_network_class(&IpAddr::V4(225, 0, 0, 0).to_arr().unwrap()).unwrap_err(), NetworkingErr::InvalidIPErr); - assert_eq!(Network::get_network_class(&IpAddr::V4(0, 0, 0, 0).to_arr().unwrap()).unwrap_err(), NetworkingErr::InvalidIPErr); - assert_eq!(Network::get_network_class(&IpAddr::V4(0, 0, 0, 1).to_arr().unwrap()).unwrap_err(), NetworkingErr::InvalidIPErr); + assert_eq!(Network::get_network_class(&IpAddr::V4(127, 0, 0, 1)).unwrap(), NetworkClass::A); + assert_eq!(Network::get_network_class(&IpAddr::V4(172, 6, 8, 10)).unwrap(), NetworkClass::B); + assert_eq!(Network::get_network_class(&IpAddr::V4(192, 168, 0, 1)).unwrap(), NetworkClass::C); + assert_eq!(Network::get_network_class(&IpAddr::V4(10, 6, 8, 10)).unwrap(), NetworkClass::A); + assert_eq!(Network::get_network_class(&IpAddr::V4(225, 255, 255, 255)).unwrap_err(), NetworkingErr::InvalidIPErr); + assert_eq!(Network::get_network_class(&IpAddr::V4(225, 0, 0, 0)).unwrap_err(), NetworkingErr::InvalidIPErr); + assert_eq!(Network::get_network_class(&IpAddr::V4(0, 0, 0, 0)).unwrap_err(), NetworkingErr::InvalidIPErr); + assert_eq!(Network::get_network_class(&IpAddr::V4(0, 0, 0, 1)).unwrap_err(), NetworkingErr::InvalidIPErr); } } \ No newline at end of file