pub enum ControlMessage<'a> {
ScmRights(&'a [RawFd]),
ScmCreds,
Ipv6PacketInfo(&'a in6_pktinfo),
}
Expand description
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.
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.
ScmCreds
A message of type SCM_CREDS
, containing the pid, uid, euid, gid and groups of
a process connected to the socket.
This is similar to the socket options LOCAL_CREDS
and LOCAL_PEERCRED
, but
requires a process to explicitly send its credentials.
Credentials are always overwritten by the kernel, so this variant does have
any data, unlike the receive-side
[ControlMessageOwned::ScmCreds
][#enum.ControlMessageOwned.html#variant.ScmCreds].
For further information, please refer to the
unix(4)
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
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl<'a> RefUnwindSafe for ControlMessage<'a>
impl<'a> Send for ControlMessage<'a>
impl<'a> Sync for ControlMessage<'a>
impl<'a> Unpin for ControlMessage<'a>
impl<'a> UnwindSafe for ControlMessage<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more