Skip to main content

OpGetDeviceDump

Struct OpGetDeviceDump 

Source
pub struct OpGetDeviceDump<'r> { /* private fields */ }
Available on crate feature wireguard only.
Expand description

§Retrieve WireGuard device

The command should be called with one but not both of:

  • WGDEVICE_A_IFINDEX
  • WGDEVICE_A_IFNAME

The kernel will then return several messages (NLM_F_MULTI). It is possible that all of the allowed IPs of a single peer will not fit within a single netlink message. In that case, the same peer will be written in the following message, except it will only contain WGPEER_A_PUBLIC_KEY and WGPEER_A_ALLOWEDIPS. This may occur several times in a row for the same peer. It is then up to the receiver to coalesce adjacent peers. Likewise, it is possible that all peers will not fit within a single message. So, subsequent peers will be sent in following messages, except those will only contain WGDEVICE_A_IFNAME and WGDEVICE_A_PEERS. It is then up to the receiver to coalesce these messages to form the complete list of peers.

Since this is an NLA_F_DUMP command, the final message will always be NLMSG_DONE, even if an error occurs. However, this NLMSG_DONE message contains an integer error code. It is either zero or a negative error code corresponding to the errno.

Flags: uns-admin-perm

Request attributes:

Reply attributes:

Implementations§

Source§

impl<'r> OpGetDeviceDump<'r>

Source

pub fn new(request: Request<'r>) -> Self

Source

pub fn encode_request<'buf>( buf: &'buf mut Vec<u8>, ) -> PushWgdevice<&'buf mut Vec<u8>>

Source

pub fn encode(&mut self) -> PushWgdevice<&mut Vec<u8>>

Source

pub fn into_encoder(self) -> PushWgdevice<RequestBuf<'r>>

Source

pub fn decode_request<'a>(buf: &'a [u8]) -> IterableWgdevice<'a>

Trait Implementations§

Source§

impl<'r> Debug for OpGetDeviceDump<'r>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl NetlinkRequest for OpGetDeviceDump<'_>

Source§

type ReplyType<'buf> = IterableWgdevice<'buf>

Source§

fn protocol(&self) -> Protocol

Netlink protocol to use
Source§

fn flags(&self) -> u16

Additional flags specified in the message header
Source§

fn payload(&self) -> &[u8]

Encoded payload of the message (without message header)
Source§

fn decode_reply<'buf>(buf: &'buf [u8]) -> Self::ReplyType<'buf>

Source§

fn lookup( buf: &[u8], offset: usize, missing_type: Option<u16>, ) -> (Vec<(&'static str, usize)>, Option<&'static str>)

Lookup an attribute and it’s parents in the request payload by offset

Auto Trait Implementations§

§

impl<'r> !UnwindSafe for OpGetDeviceDump<'r>

§

impl<'r> Freeze for OpGetDeviceDump<'r>

§

impl<'r> RefUnwindSafe for OpGetDeviceDump<'r>

§

impl<'r> Send for OpGetDeviceDump<'r>

§

impl<'r> Sync for OpGetDeviceDump<'r>

§

impl<'r> Unpin for OpGetDeviceDump<'r>

§

impl<'r> UnsafeUnpin for OpGetDeviceDump<'r>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.