PushOpSetDeviceDoRequest

Struct PushOpSetDeviceDoRequest 

Source
pub struct PushOpSetDeviceDoRequest<Prev: Rec> { /* private fields */ }
Available on crate feature wireguard only.
Expand description

Set WireGuard device.

This command should be called with a wgdevice set, containing one but not both of WGDEVICE_A_IFINDEX and WGDEVICE_A_IFNAME.

It is possible that the amount of configuration data exceeds that of the maximum message length accepted by the kernel. In that case, several messages should be sent one after another, with each successive one filling in information not contained in the prior. Note that if WGDEVICE_F_REPLACE_PEERS is specified in the first message, it probably should not be specified in fragments that come after, so that the list of peers is only cleared the first time but appended after. Likewise for peers, if WGPEER_F_REPLACE_ALLOWEDIPS is specified in the first message of a peer, it likely should not be specified in subsequent fragments.

If an error occurs, NLMSG_ERROR will reply containing an errno.

Implementations§

Source§

impl<Prev: Rec> PushOpSetDeviceDoRequest<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 PushOpSetDeviceDoRequest<Prev>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<Prev: Rec> Rec for PushOpSetDeviceDoRequest<Prev>

Source§

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

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

impl<Prev> UnwindSafe for PushOpSetDeviceDoRequest<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.