Trait UnixRequestExt

Source
pub trait UnixRequestExt {
    // Required methods
    fn unix_peer_addr(&self) -> Option<&SocketAddr>;
    fn unix_peer_cred(&self) -> Option<&UCred>;
}
Expand description

A extension trait which extends the hyper::Request type with methods related to requests served through a unix socket.

Required Methods§

Source

fn unix_peer_addr(&self) -> Option<&SocketAddr>

Returns the the incoming request’s socket’s peer credential

§Examples
use hyper::{Body, Response};
use routerify::{RouteParams, Router};
use routerify_unixsocket::UnixRequestExt;

let router = Router::builder()
    .get("/", |req| async move {
        let peer_addr = req.unix_peer_addr().expect("did not have any peer address");

        Ok(Response::new(Body::from(format!(
            "Peer address: {:?}",
            peer_addr
        ))))
    })
    .build()
    .unwrap();
Source

fn unix_peer_cred(&self) -> Option<&UCred>

Returns the the incoming request’s socket’s peer credential

§Examples
use hyper::{Body, Response};
use routerify::{RouteParams, Router};
use routerify_unixsocket::UnixRequestExt;

let router = Router::builder()
    .get("/whoami", |req| async move {
        let peer_addr = req
            .unix_peer_cred()
            .expect("did not have peer credential information");

        Ok(Response::new(Body::from(format!(
            "uid={} gid={}",
            peer_addr.uid(),
            peer_addr.gid()
        ))))
    })
    .build()
    .unwrap();

Implementations on Foreign Types§

Source§

impl UnixRequestExt for Request<Body>

Implementors§