mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-19 18:07:45 +00:00
Fix Ipv4Network::contains bug
This commit is contained in:
10
src/lib.rs
10
src/lib.rs
@ -78,7 +78,8 @@ impl Ipv4Network {
|
||||
|
||||
pub fn contains(&self, ip: Ipv4Addr) -> bool {
|
||||
let (_, net) = self.network();
|
||||
(u32::from(ip) & net) == net
|
||||
let (_, mask) = self.mask();
|
||||
(u32::from(ip) & mask) == net
|
||||
}
|
||||
|
||||
fn parse_addr(addr: &str) -> Result<Ipv4Addr, String> {
|
||||
@ -289,4 +290,11 @@ mod test {
|
||||
let ip = Ipv4Addr::new(74, 125, 227, 4);
|
||||
assert!(cidr.contains(ip));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn not_contains_v4() {
|
||||
let cidr = Ipv4Network::new(Ipv4Addr::new(10, 0, 0, 50), 24);
|
||||
let ip = Ipv4Addr::new(10, 1, 0, 1);
|
||||
assert!(!cidr.contains(ip));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user