|
1 |
| -use cidr_utils::cidr::Ipv4Cidr; |
| 1 | +use ipnetwork::Ipv4Network; |
2 | 2 |
|
3 | 3 | use crate::publish_rate_limit::PublishRateLimit;
|
4 | 4 | use crate::{env, env_optional, uploaders::Uploader, Env};
|
@@ -27,7 +27,7 @@ pub struct Server {
|
27 | 27 | pub blocked_traffic: Vec<(String, Vec<String>)>,
|
28 | 28 | pub max_allowed_page_offset: u32,
|
29 | 29 | pub page_offset_ua_blocklist: Vec<String>,
|
30 |
| - pub page_offset_cidr_blocklist: Vec<Ipv4Cidr>, |
| 30 | + pub page_offset_cidr_blocklist: Vec<Ipv4Network>, |
31 | 31 | pub excluded_crate_names: Vec<String>,
|
32 | 32 | pub domain_name: String,
|
33 | 33 | pub allowed_origins: Vec<String>,
|
@@ -166,12 +166,12 @@ pub(crate) fn domain_name() -> String {
|
166 | 166 | /// * Only IPv4 blocks are currently supported.
|
167 | 167 | /// * The minimum number of host prefix bits must be at least 16.
|
168 | 168 | ///
|
169 |
| -fn parse_cidr_blocks(blocks: &[String]) -> Vec<Ipv4Cidr> { |
| 169 | +fn parse_cidr_blocks(blocks: &[String]) -> Vec<Ipv4Network> { |
170 | 170 | blocks
|
171 | 171 | .iter()
|
172 |
| - .map(|block| match Ipv4Cidr::from_str(block) { |
| 172 | + .map(|block| match block.parse::<Ipv4Network>() { |
173 | 173 | Ok(cidr) => {
|
174 |
| - if cidr.get_bits() < 16 { |
| 174 | + if cidr.prefix() < 16 { |
175 | 175 | panic!(
|
176 | 176 | "WEB_PAGE_OFFSET_CIDR_BLOCKLIST must only contain CIDR blocks with \
|
177 | 177 | a host prefix of at least 16 bits."
|
@@ -232,8 +232,8 @@ fn parse_cidr_block_list_successfully() {
|
232 | 232 | let blocks = parse_cidr_blocks(&cidr_blocks);
|
233 | 233 | assert_eq!(
|
234 | 234 | vec![
|
235 |
| - Ipv4Cidr::from_str("127.0.0.1/24").unwrap(), |
236 |
| - Ipv4Cidr::from_str("192.168.0.1/31").unwrap(), |
| 235 | + Ipv4Network::new(std::net::Ipv4Addr::new(127, 0, 0, 1), 24).unwrap(), |
| 236 | + Ipv4Network::new(std::net::Ipv4Addr::new(192, 168, 0, 1), 31).unwrap(), |
237 | 237 | ],
|
238 | 238 | blocks,
|
239 | 239 | );
|
|
0 commit comments