use crate::request_meta::RequestMeta;
use hyper::Request;
use tokio::net::unix::{SocketAddr, UCred};
pub trait UnixRequestExt {
fn unix_peer_addr(&self) -> Option<&SocketAddr>;
fn unix_peer_cred(&self) -> Option<&UCred>;
}
impl UnixRequestExt for Request<hyper::Body> {
fn unix_peer_addr(&self) -> Option<&SocketAddr> {
self.extensions()
.get::<RequestMeta>()
.and_then(|x| x.peer_addr())
}
fn unix_peer_cred(&self) -> Option<&UCred> {
self.extensions()
.get::<RequestMeta>()
.and_then(|x| x.peer_cred())
}
}