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_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:
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: