From 5e9c4f825ef2367aea2755ff5efefb3b0a3f16a9 Mon Sep 17 00:00:00 2001 From: Mauro D Date: Sat, 27 Aug 2022 14:45:17 +0000 Subject: [PATCH] Use IpAddr on forwardedfor() --- src/client.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/client.rs b/src/client.rs index 5b2efdb..147a0b1 100644 --- a/src/client.rs +++ b/src/client.rs @@ -10,6 +10,7 @@ */ use std::{ + net::IpAddr, sync::{ atomic::{AtomicBool, Ordering}, Arc, @@ -106,8 +107,11 @@ impl ClientBuilder { self } - pub fn forwarded_for(mut self, forwarded_for: impl ToString) -> Self { - self.forwarded_for = Some(forwarded_for.to_string()); + pub fn forwarded_for(mut self, forwarded_for: IpAddr) -> Self { + self.forwarded_for = Some(match forwarded_for { + IpAddr::V4(addr) => format!("for={}", addr), + IpAddr::V6(addr) => format!("for=\"{}\"", addr), + }); self } @@ -129,7 +133,7 @@ impl ClientBuilder { if let Some(forwarded_for) = self.forwarded_for { headers.insert( header::FORWARDED, - header::HeaderValue::from_str(&format!("for={}", forwarded_for)).unwrap(), + header::HeaderValue::from_str(&forwarded_for).unwrap(), ); } @@ -215,7 +219,7 @@ impl ClientBuilder { if let Some(forwarded_for) = self.forwarded_for { headers.insert( header::FORWARDED, - header::HeaderValue::from_str(&format!("for={}", forwarded_for)).unwrap(), + header::HeaderValue::from_str(&forwarded_for).unwrap(), ); }