PushOpGetDeviceDumpRequest

Struct PushOpGetDeviceDumpRequest 

Source
pub struct PushOpGetDeviceDumpRequest<Prev: Rec> { /* 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.

Implementations§

Source§

impl<Prev: Rec> PushOpGetDeviceDumpRequest<Prev>

Source

pub fn new(prev: Prev) -> Self

Source

pub fn end_nested(self) -> Prev

Source

pub fn push_ifindex(self, value: u32) -> Self

Source

pub fn push_ifname(self, value: &CStr) -> Self

Source

pub fn push_ifname_bytes(self, value: &[u8]) -> Self

Source

pub fn push_private_key(self, value: &[u8]) -> Self

Set to all zeros to remove.

Source

pub fn push_public_key(self, value: &[u8]) -> Self

Source

pub fn push_flags(self, value: u32) -> Self

0 or WGDEVICE_F_REPLACE_PEERS if all current peers should be removed prior to adding the list below.

Associated type: “WgdeviceFlags” (enum)

Source

pub fn push_listen_port(self, value: u16) -> Self

Set as 0 to choose randomly.

Source

pub fn push_fwmark(self, value: u32) -> Self

Set as 0 to disable.

Source

pub fn array_peers(self) -> PushArrayWgpeer<Self>

Trait Implementations§

Source§

impl<Prev: Rec> Drop for PushOpGetDeviceDumpRequest<Prev>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<Prev: Rec> Rec for PushOpGetDeviceDumpRequest<Prev>

Source§

fn as_rec_mut(&mut self) -> &mut Vec<u8>

Auto Trait Implementations§

§

impl<Prev> Freeze for PushOpGetDeviceDumpRequest<Prev>
where Prev: Freeze,

§

impl<Prev> RefUnwindSafe for PushOpGetDeviceDumpRequest<Prev>
where Prev: RefUnwindSafe,

§

impl<Prev> Send for PushOpGetDeviceDumpRequest<Prev>
where Prev: Send,

§

impl<Prev> Sync for PushOpGetDeviceDumpRequest<Prev>
where Prev: Sync,

§

impl<Prev> Unpin for PushOpGetDeviceDumpRequest<Prev>
where Prev: Unpin,

§

impl<Prev> UnwindSafe for PushOpGetDeviceDumpRequest<Prev>
where Prev: UnwindSafe,

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.