1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
//! Socket Address filters. use std::net::SocketAddr; use filter::{filter_fn_one, Filter}; use never::Never; /// Creates a `Filter` to get the remote address of the connection. /// /// If the underlying transport doesn't use socket addresses, this will yield /// `None`. /// /// # Example /// /// ``` /// use std::net::SocketAddr; /// use warp::Filter; /// /// let route = warp::addr::remote() /// .map(|addr: Option<SocketAddr>| { /// println!("remote address = {:?}", addr); /// }); /// ``` pub fn remote() -> impl Filter<Extract = (Option<SocketAddr>,), Error = Never> + Copy { filter_fn_one(|route| Ok(route.remote_addr())) }