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§
sourcefn connect_to_unix_addr(addr: &UnixSocketAddr) -> Result<Self, Error>where
Self: Sized,
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.
sourcefn connect_from_to_unix_addr(
from: &UnixSocketAddr,
to: &UnixSocketAddr
) -> Result<Self, Error>where
Self: Sized,
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§
sourcefn local_unix_addr(&self) -> Result<UnixSocketAddr, Error>
fn local_unix_addr(&self) -> Result<UnixSocketAddr, Error>
Get the address of this socket, as a type that fully supports abstract addresses.
sourcefn peer_unix_addr(&self) -> Result<UnixSocketAddr, Error>
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.
sourcefn send_fds(&self, bytes: &[u8], fds: &[RawFd]) -> Result<usize, Error>
fn send_fds(&self, bytes: &[u8], fds: &[RawFd]) -> Result<usize, Error>
Sends file descriptors in addition to bytes.
sourcefn recv_fds(
&self,
buf: &mut [u8],
fd_buf: &mut [RawFd]
) -> Result<(usize, usize), Error>
fn recv_fds( &self, buf: &mut [u8], fd_buf: &mut [RawFd] ) -> Result<(usize, usize), Error>
Receives file descriptors in addition to bytes.
sourcefn initial_peer_credentials(&self) -> Result<ConnCredentials, Error>
fn initial_peer_credentials(&self) -> Result<ConnCredentials, Error>
Returns the credentials of the process that created the other end of this stream.
sourcefn initial_peer_selinux_context(
&self,
buffer: &mut [u8]
) -> Result<usize, Error>
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.