pub struct UnixAddr(pub sockaddr_un, pub usize);
Expand description
A wrapper around sockaddr_un
.
This also tracks the length of sun_path
address (excluding
a terminating null), because it may not be null-terminated. For example,
unconnected and Linux abstract sockets are never null-terminated, and POSIX
does not require that sun_len
include the terminating null even for normal
sockets. Note that the actual sockaddr length is greater by
offset_of!(libc::sockaddr_un, sun_path)
Tuple Fields
0: sockaddr_un
1: usize
Implementations
sourceimpl UnixAddr
impl UnixAddr
sourcepub fn new<P: ?Sized + NixPath>(path: &P) -> Result<UnixAddr>
pub fn new<P: ?Sized + NixPath>(path: &P) -> Result<UnixAddr>
Create a new sockaddr_un representing a filesystem path.
sourcepub fn new_abstract(path: &[u8]) -> Result<UnixAddr>
pub fn new_abstract(path: &[u8]) -> Result<UnixAddr>
Create a new sockaddr_un
representing an address in the “abstract namespace”.
The leading null byte for the abstract namespace is automatically added;
thus the input path
is expected to be the bare name, not null-prefixed.
This is a Linux-specific extension, primarily used to allow chrooted
processes to communicate with processes having a different filesystem view.
sourcepub fn path(&self) -> Option<&Path>
pub fn path(&self) -> Option<&Path>
If this address represents a filesystem path, return that path.
sourcepub fn as_abstract(&self) -> Option<&[u8]>
pub fn as_abstract(&self) -> Option<&[u8]>
If this address represents an abstract socket, return its name.
For abstract sockets only the bare name is returned, without the
leading null byte. None
is returned for unnamed or path-backed sockets.
Trait Implementations
impl Copy for UnixAddr
impl Eq for UnixAddr
Auto Trait Implementations
impl RefUnwindSafe for UnixAddr
impl Send for UnixAddr
impl Sync for UnixAddr
impl Unpin for UnixAddr
impl UnwindSafe for UnixAddr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more