From 3d64c3e24e93eee875e0f67945481dde8ad2f68c Mon Sep 17 00:00:00 2001 From: Tiberiu Voicu Date: Mon, 10 Feb 2025 20:27:23 +0000 Subject: [PATCH] Simplify --- src/api.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/api.rs b/src/api.rs index 7d97af8..dd48303 100644 --- a/src/api.rs +++ b/src/api.rs @@ -67,13 +67,7 @@ pub fn get_client_ip_x_forwarded_for( .and_then(|mut x_forwarded_headers_ips| { x_forwarded_headers_ips.push(remote_client_ip); let mut rev_ips = x_forwarded_headers_ips.into_iter().rev().peekable(); - while let Some(ip) = rev_ips.next() { - let trusted = trusted_proxies.iter().any(|proxy| proxy.contains(&ip)); - if !trusted || rev_ips.peek().is_none() { - return Some(ip); - } - } - None + rev_ips.find(|ip| !trusted_proxies.iter().any(|proxy| proxy.contains(ip))) }) .unwrap_or(remote_client_ip) } @@ -228,6 +222,14 @@ mod tests { ), "127.0.0.2".parse::().unwrap(), ), + ( + ( + vec!["192.168.0.0/30".parse().unwrap()], + Some(HeaderValue::from_str("127.0.0.3").unwrap()), + "192.168.0.3".parse().unwrap(), + ), + "127.0.0.3".parse::().unwrap(), + ), ( ( vec!["127.0.0.2/32".parse().unwrap()],