Trait uds::UnixStreamExt

source ·
pub trait UnixStreamExt: AsRawFd + FromRawFd {
    // Required methods
    fn connect_to_unix_addr(addr: &UnixSocketAddr) -> Result<Self, Error>
       where Self: Sized;
    fn connect_from_to_unix_addr(
        from: &UnixSocketAddr,
        to: &UnixSocketAddr
    ) -> Result<Self, Error>
       where Self: Sized;

    // Provided methods
    fn local_unix_addr(&self) -> Result<UnixSocketAddr, Error> { ... }
    fn peer_unix_addr(&self) -> Result<UnixSocketAddr, Error> { ... }
    fn send_fds(&self, bytes: &[u8], fds: &[RawFd]) -> Result<usize, Error> { ... }
    fn recv_fds(
        &self,
        buf: &mut [u8],
        fd_buf: &mut [RawFd]
    ) -> Result<(usize, usize), Error> { ... }
    fn initial_peer_credentials(&self) -> Result<ConnCredentials, Error> { ... }
    fn initial_peer_selinux_context(
        &self,
        buffer: &mut [u8]
    ) -> Result<usize, Error> { ... }
}
Expand description

Extension trait for std::os::unix::net::UnixStream and nonblocking equivalents.

Required Methods§

source

fn connect_to_unix_addr(addr: &UnixSocketAddr) -> Result<Self, Error>
where Self: Sized,

Creates a connection to a listening path-based or abstract named socket.

source

fn connect_from_to_unix_addr( from: &UnixSocketAddr, to: &UnixSocketAddr ) -> Result<Self, Error>
where Self: Sized,

Creates a path-based or abstract-named socket and connects to a listening socket.

Provided Methods§

source

fn local_unix_addr(&self) -> Result<UnixSocketAddr, Error>

Get the address of this socket, as a type that fully supports abstract addresses.

source

fn peer_unix_addr(&self) -> Result<UnixSocketAddr, Error>

Returns the address of the other end of this stream, as a type that fully supports abstract addresses.

source

fn send_fds(&self, bytes: &[u8], fds: &[RawFd]) -> Result<usize, Error>

Sends file descriptors in addition to bytes.

source

fn recv_fds( &self, buf: &mut [u8], fd_buf: &mut [RawFd] ) -> Result<(usize, usize), Error>

Receives file descriptors in addition to bytes.

source

fn initial_peer_credentials(&self) -> Result<ConnCredentials, Error>

Returns the credentials of the process that created the other end of this stream.

source

fn initial_peer_selinux_context( &self, buffer: &mut [u8] ) -> Result<usize, Error>

Returns the SELinux security context of the process that created the other end of this stream.

Will return an error on other operating systems than Linux or Android, and also if running under kubernetes. On success the number of bytes used is returned. (like Read)

The default security context is unconfined, without any trailing NUL.
A buffor of 50 bytes is probably always big enough.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl UnixStreamExt for UnixStream

source§

impl UnixStreamExt for UnixStream

Implementors§