diff options
| author | tv <tv@krebsco.de> | 2026-10-31 21:58:21 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-31 21:58:21 +0100 |
| commit | 0277b27b678cfbb86ccf72da583503621c6142e6 (patch) | |
| tree | 9203f7bce3e46a60202e3421fbaa78d1f50ece72 /src/transport/libp2p/ignore.rs | |
| parent | 9517904f7925125df17b581132f6065477ff9439 (diff) | |
libp2p: warn/refuse bad prefer/ignore combos
Diffstat (limited to 'src/transport/libp2p/ignore.rs')
| -rw-r--r-- | src/transport/libp2p/ignore.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/transport/libp2p/ignore.rs b/src/transport/libp2p/ignore.rs index 659ec91..51e1f45 100644 --- a/src/transport/libp2p/ignore.rs +++ b/src/transport/libp2p/ignore.rs @@ -37,6 +37,13 @@ impl FromStr for IpRange { } impl IpRange { + /// Whether every address of `other` is in this range too. + pub(super) fn covers(&self, other: &IpRange) -> bool { + self.network.is_ipv4() == other.network.is_ipv4() + && self.prefix <= other.prefix + && self.contains(other.network) + } + pub(super) fn contains(&self, ip: std::net::IpAddr) -> bool { use std::net::IpAddr; match (self.network, ip) { |
