#[repr(C)]pub struct UnixAddr {
sun: sockaddr_un,
sun_len: u8,
}
Expand description
A wrapper around sockaddr_un
.
Fields§
§sun: sockaddr_un
§sun_len: u8
The length of the valid part of sun
, including the sun_family field
but excluding any trailing nul.
Implementations§
Source§impl 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 nul byte for the abstract namespace is automatically added;
thus the input path
is expected to be the bare name, not NUL-prefixed.
This is a Linux-specific extension, primarily used to allow chrooted
processes to communicate with processes having a different filesystem view.
Sourcepub fn new_unnamed() -> UnixAddr
pub fn new_unnamed() -> UnixAddr
Create a new sockaddr_un
representing an “unnamed” unix socket address.
Sourcepub(crate) unsafe fn from_raw_parts(sun: sockaddr_un, sun_len: u8) -> UnixAddr
pub(crate) unsafe fn from_raw_parts(sun: sockaddr_un, sun_len: u8) -> UnixAddr
Create a UnixAddr from a raw sockaddr_un
struct and a size. sun_len
is the size of the valid portion of the struct, excluding any trailing
NUL.
§Safety
This pair of sockaddr_un & sun_len must be a valid unix addr, which means:
- sun_len >= offset_of(sockaddr_un, sun_path)
- sun_len <= sockaddr_un.sun_path.len() - offset_of(sockaddr_un, sun_path)
- if this is a unix addr with a pathname, sun.sun_path is a fs path, not necessarily nul-terminated.
fn kind(&self) -> UnixAddrKind<'_>
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 NUL byte. None
is returned for unnamed or path-backed sockets.
Sourcepub fn is_unnamed(&self) -> bool
pub fn is_unnamed(&self) -> bool
Check if this address is an “unnamed” unix socket address.
Sourcepub fn path_len(&self) -> usize
pub fn path_len(&self) -> usize
Returns the addrlen of this socket - offsetof(struct sockaddr_un, sun_path)
Sourcepub fn as_ptr(&self) -> *const sockaddr_un
pub fn as_ptr(&self) -> *const sockaddr_un
Returns a pointer to the raw sockaddr_un
struct
Sourcepub fn as_mut_ptr(&mut self) -> *mut sockaddr_un
pub fn as_mut_ptr(&mut self) -> *mut sockaddr_un
Returns a mutable pointer to the raw sockaddr_un
struct