Use IpAddr on forwardedfor()

main
Mauro D 2022-08-27 14:45:17 +00:00
parent 9f50a0f41c
commit 5e9c4f825e
1 changed files with 8 additions and 4 deletions

View File

@ -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(),
);
}