# Trait UnixSocketExt

Source

    pub trait UnixSocketExt: Sealed {
        // Required methods
        fn passcred(&self) -> Result<bool>;
        fn set_passcred(&self, passcred: bool) -> Result<()>;
    }

🔬This is a nightly-only experimental API. (`unix_socket_ancillary_data` #76915)
Available on Linux and (Linux or Android) only.
Expand description

Linux-specific functionality for `AF_UNIX` sockets `UnixDatagram` and `UnixStream`.

## Required Methods§

Source

#### fn passcred(&self) -> Result<bool>

🔬This is a nightly-only experimental API. (`unix_socket_ancillary_data` #76915)

Query the current setting of socket option `SO_PASSCRED`.

Source

#### fn set_passcred(&self, passcred: bool) -> Result<()>

🔬This is a nightly-only experimental API. (`unix_socket_ancillary_data` #76915)

Enable or disable socket option `SO_PASSCRED`.

This option enables the credentials of the sending process to be received as a control message in `AncillaryData`.

##### §Examples

    #![feature(unix_socket_ancillary_data)]
    #[cfg(target_os = "linux")]
    use std::os::linux::net::UnixSocketExt;
    #[cfg(target_os = "android")]
    use std::os::android::net::UnixSocketExt;
    use std::os::unix::net::UnixDatagram;

    fn main() -> std::io::Result<()> {
        let sock = UnixDatagram::unbound()?;
        sock.set_passcred(true).expect("set_passcred failed");
        Ok(())
    }

## Implementors§

Source§

### impl UnixSocketExt for UnixDatagram

Source§

### impl UnixSocketExt for UnixStream