pub struct Request<'buf> { /* private fields */ }wireguard only.Implementations§
Source§impl<'buf> Request<'buf>
impl<'buf> Request<'buf>
pub fn new_with_buf(buf: &'buf mut Vec<u8>) -> Self
pub fn new_extend(buf: &'buf mut Vec<u8>) -> Self
pub fn buf(&self) -> &Vec<u8> ⓘ
pub fn buf_mut(&mut self) -> &mut Vec<u8> ⓘ
Sourcepub fn set_create(self) -> Self
pub fn set_create(self) -> Self
Set NLM_F_CREATE flag
Sourcepub fn set_replace(self) -> Self
pub fn set_replace(self) -> Self
Set NLM_F_REPLACE flag
Sourcepub fn set_change(self) -> Self
pub fn set_change(self) -> Self
Set NLM_F_CREATE and NLM_F_REPLACE flag
Sourcepub fn set_append(self) -> Self
pub fn set_append(self) -> Self
Set NLM_F_APPEND flag
Sourcepub fn unset_flags(self, flags: u16) -> Self
pub fn unset_flags(self, flags: u16) -> Self
Set self.flags ^= self.flags & flags
Sourcepub fn op_get_device_dump(self) -> OpGetDeviceDump<'buf>
pub fn op_get_device_dump(self) -> OpGetDeviceDump<'buf>
§Retrieve WireGuard device
The command should be called with one but not both of:
WGDEVICE_A_IFINDEXWGDEVICE_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:
Sourcepub fn op_set_device_do(self) -> OpSetDeviceDo<'buf>
pub fn op_set_device_do(self) -> OpSetDeviceDo<'buf>
§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.
Flags: uns-admin-perm
Request attributes: