Skip to content

Commit 626bafa

Browse files
committed
Rename const {Ipv4Network, Ipv6Network}::ANY to DEFAULT_ROUTE
1 parent 0819d2e commit 626bafa

File tree

2 files changed

+50
-6
lines changed

2 files changed

+50
-6
lines changed

src/ipv4_network.rs

+25-3
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ impl Ipv4Network {
2020
/// IPv4 address length in bits.
2121
pub const LENGTH: u8 = 32;
2222

23-
/// Default route, IP network 0.0.0.0/0
24-
pub const ANY: Self = Self {
23+
/// Default route that contains all IP addresses, IP network 0.0.0.0/0
24+
pub const DEFAULT_ROUTE: Self = Self {
2525
network_address: Ipv4Addr::UNSPECIFIED,
2626
netmask: 0,
2727
};
@@ -674,7 +674,7 @@ impl Ipv4Network {
674674

675675
let mut to_merge = addresses.to_vec();
676676
while let Some(net) = to_merge.pop() {
677-
let supernet = net.supernet().unwrap_or(Ipv4Network::ANY);
677+
let supernet = net.supernet().unwrap_or(Ipv4Network::DEFAULT_ROUTE);
678678
match subnets.entry(supernet) {
679679
Entry::Vacant(vacant) => {
680680
vacant.insert(net);
@@ -829,11 +829,19 @@ mod tests {
829829
use std::net::Ipv4Addr;
830830
use crate::{IpNetworkError, Ipv4Network};
831831
use std::str::FromStr;
832+
use std::collections::hash_map::DefaultHasher;
833+
use std::hash::{Hash, Hasher};
832834

833835
fn return_test_ipv4_network() -> Ipv4Network {
834836
Ipv4Network::new(Ipv4Addr::new(192, 168, 0, 0), 16).unwrap()
835837
}
836838

839+
#[test]
840+
fn default_route() {
841+
let network = Ipv4Network::DEFAULT_ROUTE;
842+
assert!(network.is_default_route());
843+
}
844+
837845
#[test]
838846
fn new_host_bits_set() {
839847
let ip = Ipv4Addr::new(127, 0, 0, 1);
@@ -1263,4 +1271,18 @@ mod tests {
12631271
assert_eq!(ip, ipv4_network.network_address());
12641272
assert_eq!(32, ipv4_network.netmask());
12651273
}
1274+
1275+
#[test]
1276+
fn hash() {
1277+
let network1 = Ipv4Network::from_str("192.0.2.0/26").unwrap();
1278+
let network2 = Ipv4Network::from_str("192.0.2.64/26").unwrap();
1279+
1280+
let mut hasher1 = DefaultHasher::new();
1281+
network1.hash(&mut hasher1);
1282+
1283+
let mut hasher2 = DefaultHasher::new();
1284+
network2.hash(&mut hasher2);
1285+
1286+
assert_ne!(hasher1.finish(), hasher2.finish());
1287+
}
12661288
}

src/ipv6_network.rs

+25-3
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ impl Ipv6Network {
3131
/// IPv6 address length in bits.
3232
pub const LENGTH: u8 = 128;
3333

34-
/// Default route, IP network ::/0
35-
pub const ANY: Self = Self {
34+
/// Default route that contains all IP addresses, IP network ::/0
35+
pub const DEFAULT_ROUTE: Self = Self {
3636
network_address: Ipv6Addr::UNSPECIFIED,
3737
netmask: 0,
3838
};
@@ -556,7 +556,7 @@ impl Ipv6Network {
556556

557557
let mut to_merge = addresses.to_vec();
558558
while let Some(net) = to_merge.pop() {
559-
let supernet = net.supernet().unwrap_or(Ipv6Network::ANY);
559+
let supernet = net.supernet().unwrap_or(Ipv6Network::DEFAULT_ROUTE);
560560
match subnets.entry(supernet) {
561561
Entry::Vacant(vacant) => {
562562
vacant.insert(net);
@@ -663,11 +663,19 @@ mod tests {
663663
use std::net::Ipv6Addr;
664664
use crate::{Ipv6Network, IpNetworkError, Ipv6MulticastScope};
665665
use std::str::FromStr;
666+
use std::hash::{Hash, Hasher};
667+
use std::collections::hash_map::DefaultHasher;
666668

667669
fn return_test_ipv6_network() -> Ipv6Network {
668670
Ipv6Network::new(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0), 32).unwrap()
669671
}
670672

673+
#[test]
674+
fn default_route() {
675+
let network = Ipv6Network::DEFAULT_ROUTE;
676+
assert!(network.is_default_route());
677+
}
678+
671679
#[test]
672680
fn new() {
673681
let ip = Ipv6Addr::new(0xfc00, 0, 0, 0, 0, 0, 0, 0);
@@ -879,4 +887,18 @@ mod tests {
879887
assert_eq!(ip, ipv6_network.network_address());
880888
assert_eq!(128, ipv6_network.netmask());
881889
}
890+
891+
#[test]
892+
fn hash() {
893+
let network1 = Ipv6Network::from_str("2001::/100").unwrap();
894+
let network2 = Ipv6Network::from_str("2001::/120").unwrap();
895+
896+
let mut hasher1 = DefaultHasher::new();
897+
network1.hash(&mut hasher1);
898+
899+
let mut hasher2 = DefaultHasher::new();
900+
network2.hash(&mut hasher2);
901+
902+
assert_ne!(hasher1.finish(), hasher2.finish());
903+
}
882904
}

0 commit comments

Comments
 (0)