#[non_exhaustive]pub enum ControlMessage<'a> {
ScmRights(&'a [RawFd]),
ScmCredentials(&'a UnixCredentials),
AlgSetIv(&'a [u8]),
AlgSetOp(&'a c_int),
AlgSetAeadAssoclen(&'a u32),
RxqOvfl(&'a u32),
TxTime(&'a u64),
}
Expand description
A type-safe zero-copy wrapper around a single control message, as used with
sendmsg
. More types may be added to this enum; do not exhaustively
pattern-match it.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
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
RxqOvfl(&'a u32)
SO_RXQ_OVFL indicates that an unsigned 32 bit value ancillary msg (cmsg) should be attached to received skbs indicating the number of packets dropped by the socket between the last received packet and this received packet.
TxTime(&'a u64)
Configure the transmission time of packets.
For further information, please refer to the
tc-etf(8)
man
page.
Implementations§
Source§impl ControlMessage<'_>
impl ControlMessage<'_>
Sourcefn space(&self) -> usize
fn space(&self) -> usize
The value of CMSG_SPACE on this message. Safe because CMSG_SPACE is always safe
Sourcefn cmsg_len(&self) -> usize
fn cmsg_len(&self) -> usize
The value of CMSG_LEN on this message. Safe because CMSG_LEN is always safe
Sourcefn copy_to_cmsg_data(&self, cmsg_data: *mut u8)
fn copy_to_cmsg_data(&self, cmsg_data: *mut u8)
Return a reference to the payload data as a byte pointer
Sourcefn cmsg_level(&self) -> c_int
fn cmsg_level(&self) -> c_int
Returns the value to put into the cmsg_level
field of the header.
unsafe fn encode_into(&self, cmsg: *mut cmsghdr)
Trait Implementations§
Source§impl<'a> Clone for ControlMessage<'a>
impl<'a> Clone for ControlMessage<'a>
Source§fn clone(&self) -> ControlMessage<'a>
fn clone(&self) -> ControlMessage<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more