nix::sys::socket

Struct UnixAddr

Source
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§

Source§

impl UnixAddr

Source

pub fn new<P: ?Sized + NixPath>(path: &P) -> Result<UnixAddr>

Create a new sockaddr_un representing a filesystem path.

Source

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.

Source

pub fn path(&self) -> Option<&Path>

If this address represents a filesystem path, return that path.

Source

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§

Source§

impl Clone for UnixAddr

Source§

fn clone(&self) -> UnixAddr

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UnixAddr

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for UnixAddr

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for UnixAddr

Source§

fn hash<H: Hasher>(&self, s: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for UnixAddr

Source§

fn eq(&self, other: &UnixAddr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for UnixAddr

Source§

impl Eq for UnixAddr

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.