pub enum ForwardedSource<'a> {
Forwarded(&'a [&'a [u8]]),
XForwardedFor(&'a [&'a [u8]]),
}Expand description
Which header the deployment reads the chain from: every field line of it, in order. The two are never merged (merging is a parser differential: two proxies could disagree on the order).
§Examples
use core::net::IpAddr;
use parse_net::{client_address, ClientAddress, ForwardedSource};
let peer: IpAddr = "10.0.0.1".parse()?;
let lines: [&[u8]; 1] = [b"for=192.0.2.60"];
let source = ForwardedSource::Forwarded(&lines);
assert_eq!(client_address(peer, source, &|a: IpAddr| a == peer, 16)?,
ClientAddress::Forwarded { addr: "192.0.2.60".parse()?, hops: 1 });Variants§
Forwarded(&'a [&'a [u8]])
Forwarded field lines.
XForwardedFor(&'a [&'a [u8]])
X-Forwarded-For field lines.
Trait Implementations§
Source§impl<'a> Clone for ForwardedSource<'a>
impl<'a> Clone for ForwardedSource<'a>
impl<'a> Copy for ForwardedSource<'a>
Auto Trait Implementations§
impl<'a> Freeze for ForwardedSource<'a>
impl<'a> RefUnwindSafe for ForwardedSource<'a>
impl<'a> Send for ForwardedSource<'a>
impl<'a> Sync for ForwardedSource<'a>
impl<'a> Unpin for ForwardedSource<'a>
impl<'a> UnsafeUnpin for ForwardedSource<'a>
impl<'a> UnwindSafe for ForwardedSource<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more