Enum nix::sys::socket::ControlMessage[][src]

pub enum ControlMessage<'a> {
    ScmRights(&'a [RawFd]),
    ScmCredentials(&'a UnixCredentials),
    AlgSetIv(&'a [u8]),
    AlgSetOp(&'a c_int),
    AlgSetAeadAssoclen(&'a u32),
    UdpGsoSegments(&'a u16),
    Ipv4PacketInfo(&'a in_pktinfo),
    Ipv6PacketInfo(&'a in6_pktinfo),
}

A type-safe zero-copy wrapper around a single control message, as used wih sendmsg. More types may be added to this enum; do not exhaustively pattern-match it.

Further reading

Variants

ScmRights(&'a [RawFd])

A message of type SCM_RIGHTS, containing an array of file descriptors passed between processes.

See the description in the "Ancillary messages" section of the unix(7) man page.

Using multiple ScmRights messages for a single sendmsg call isn't recommended since it causes platform-dependent behaviour: It might swallow all but the first ScmRights message or fail with EINVAL. Instead, you can put all fds to be passed into a single ScmRights message.

ScmCredentials(&'a UnixCredentials)

A message of type SCM_CREDENTIALS, containing the pid, uid and gid of a process connected to the socket.

This is similar to the socket option SO_PEERCRED, but requires a process to explicitly send its credentials. A process running as root is allowed to specify any credentials, while credentials sent by other processes are verified by the kernel.

For further information, please refer to the unix(7) man page.

AlgSetIv(&'a [u8])

Set IV for AF_ALG crypto API.

For further information, please refer to the documentation

AlgSetOp(&'a c_int)

Set crypto operation for AF_ALG crypto API. It may be one of ALG_OP_ENCRYPT or ALG_OP_DECRYPT

For further information, please refer to the documentation

AlgSetAeadAssoclen(&'a u32)

Set the length of associated authentication data (AAD) (applicable only to AEAD algorithms) for AF_ALG crypto API.

For further information, please refer to the documentation

UdpGsoSegments(&'a u16)

UDP GSO makes it possible for applications to generate network packets for a virtual MTU much greater than the real one. The length of the send data no longer matches the expected length on the wire. The size of the datagram payload as it should appear on the wire may be passed through this control message. Send buffer should consist of multiple fixed-size wire payloads following one by one, and the last, possibly smaller one.

Ipv4PacketInfo(&'a in_pktinfo)

Configure the sending addressing and interface for v4

For further information, please refer to the ip(7) man page.

Ipv6PacketInfo(&'a in6_pktinfo)

Configure the sending addressing and interface for v6

For further information, please refer to the ipv6(7) man page.

Trait Implementations

impl<'a> Clone for ControlMessage<'a>[src]

impl<'a> Copy for ControlMessage<'a>[src]

impl<'a> Debug for ControlMessage<'a>[src]

impl<'a> Eq for ControlMessage<'a>[src]

impl<'a> PartialEq<ControlMessage<'a>> for ControlMessage<'a>[src]

impl<'a> StructuralEq for ControlMessage<'a>[src]

impl<'a> StructuralPartialEq for ControlMessage<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for ControlMessage<'a>[src]

impl<'a> Send for ControlMessage<'a>[src]

impl<'a> Sync for ControlMessage<'a>[src]

impl<'a> Unpin for ControlMessage<'a>[src]

impl<'a> UnwindSafe for ControlMessage<'a>[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.