Enum otter_api_tests::imports::nix::sys::socket::ControlMessage [−]
pub enum ControlMessage<'a> {
ScmRights(&'a [i32]),
ScmCredentials(&'a UnixCredentials),
AlgSetIv(&'a [u8]),
AlgSetOp(&'a i32),
AlgSetAeadAssoclen(&'a u32),
UdpGsoSegments(&'a u16),
Ipv4PacketInfo(&'a in_pktinfo),
Ipv6PacketInfo(&'a in6_pktinfo),
RxqOvfl(&'a u32),
}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
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.
Set IV for AF_ALG crypto API.
For further information, please refer to the
documentation
AlgSetOp(&'a i32)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.
RxqOvfl(&'a u32)SO_RXQ_OVFL indicates that an unsigned 32 bit value ancilliary msg (cmsg) should be attached to recieved skbs indicating the number of packets dropped by the socket between the last recieved packet and this received packet.
Trait Implementations
impl<'a> Clone for ControlMessage<'a>
impl<'a> Clone for ControlMessage<'a>pub fn clone(&self) -> ControlMessage<'a>
pub fn clone(&self) -> ControlMessage<'a>Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
impl<'a> Debug for ControlMessage<'a>
impl<'a> Debug for ControlMessage<'a>impl<'a> PartialEq<ControlMessage<'a>> for ControlMessage<'a>
impl<'a> PartialEq<ControlMessage<'a>> for ControlMessage<'a>pub fn eq(&self, other: &ControlMessage<'a>) -> bool
pub fn eq(&self, other: &ControlMessage<'a>) -> boolThis method tests for self and other values to be equal, and is used
by ==. Read more
pub fn ne(&self, other: &ControlMessage<'a>) -> bool
pub fn ne(&self, other: &ControlMessage<'a>) -> boolThis method tests for !=.
impl<'a> Copy for ControlMessage<'a>impl<'a> Eq for ControlMessage<'a>impl<'a> StructuralEq for ControlMessage<'a>impl<'a> StructuralPartialEq for ControlMessage<'a>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
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>
impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<I, A> Iterator for Box<I, A> where
A: Allocator,
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
A: Allocator + 'static,
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>
impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<I, A> Iterator for Box<I, A> where
A: Allocator,
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
A: Allocator + 'static,
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more
impl<A> DynCastExt for A
impl<A> DynCastExt for Apub fn dyn_cast<T>(
self
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source> where
T: ?Sized,
A: DynCastExtHelper<T>,
pub fn dyn_cast<T>(
self
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source> where
T: ?Sized,
A: DynCastExtHelper<T>, Use this to cast from one trait object type to another. Read more
pub fn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target where
T: ?Sized,
A: DynCastExtAdvHelper<T, T, Source = <A as DynCastExtAdvHelper<T, T>>::Target>,
pub fn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target where
T: ?Sized,
A: DynCastExtAdvHelper<T, T, Source = <A as DynCastExtAdvHelper<T, T>>::Target>, Use this to upcast a trait to one of its supertraits. Read more
pub fn dyn_cast_adv<F, T>(
self
) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source> where
T: ?Sized,
A: DynCastExtAdvHelper<F, T>,
F: ?Sized,
pub fn dyn_cast_adv<F, T>(
self
) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source> where
T: ?Sized,
A: DynCastExtAdvHelper<F, T>,
F: ?Sized, pub fn dyn_cast_with_config<C>(
self
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source> where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>,
pub fn dyn_cast_with_config<C>(
self
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source> where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>, Use this to cast from one trait object type to another. With this method the type parameter is a config type that uniquely specifies which cast should be preformed. Read more
Compare self to key and return true if they are equal.
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;pub fn vzip(self) -> V