mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-16 16:58:50 +00:00
Merge pull request #63 from tshepang/multiple-slashes
avoid misleading message
This commit is contained in:
@ -35,10 +35,12 @@ impl Error for IpNetworkError {
|
||||
|
||||
pub fn cidr_parts(cidr: &str) -> Result<(&str, &str), IpNetworkError> {
|
||||
let parts = cidr.split('/').collect::<Vec<&str>>();
|
||||
if parts.len() == 2 {
|
||||
if parts.len() == 1 {
|
||||
Err(IpNetworkError::InvalidCidrFormat(format!("CIDR must contain '/': {}", cidr)))
|
||||
} else if parts.len() == 2 {
|
||||
Ok((parts[0], parts[1]))
|
||||
} else {
|
||||
Err(IpNetworkError::InvalidCidrFormat(format!("CIDR must contain '/': {}", cidr)))
|
||||
Err(IpNetworkError::InvalidCidrFormat(format!("CIDR must contain a single '/': {}", cidr)))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -308,6 +308,12 @@ mod test {
|
||||
assert_eq!(None, cidr);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_v4_fail_two_slashes() {
|
||||
let cidr: Option<Ipv4Network> = "10.1.1.1/24/".parse().ok();
|
||||
assert_eq!(None, cidr);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn size_v4_24bit() {
|
||||
let net: Ipv4Network = "0/24".parse().unwrap();
|
||||
|
@ -292,6 +292,12 @@ mod test {
|
||||
assert_eq!(None, cidr);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_v6_fail_two_slashes() {
|
||||
let cidr: Option<Ipv6Network> = "::1/24/".parse().ok();
|
||||
assert_eq!(None, cidr);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mask_v6() {
|
||||
let cidr = Ipv6Network::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0), 40).unwrap();
|
||||
|
Reference in New Issue
Block a user