diff options
author | Himbeer <himbeer@disroot.org> | 2024-08-17 15:16:14 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-08-17 15:16:14 +0200 |
commit | fafaae739c798c0a86193725e535e1cfdba230fa (patch) | |
tree | 71cc29880b0bc788b4f16c8a93f4c664e1b9f996 | |
parent | b931675ccfe4a00fd8edb5ba058f650a42bc7003 (diff) |
Add support for adding WireGuard links
-rw-r--r-- | src/blocking.rs | 2 | ||||
-rw-r--r-- | src/link.rs | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/blocking.rs b/src/blocking.rs index 1e80a30..f78f24a 100644 --- a/src/blocking.rs +++ b/src/blocking.rs @@ -80,6 +80,8 @@ pub mod link { blockify!(link_set_mtu, link: String, mtu: u32); #[cfg(feature = "link")] blockify!(link_add_vlan, link: String, parent: String, vlan_id: u16); + #[cfg(feature = "link")] + blockify!(link_add_wireguard, link: String); blockify!(link_is_up -> bool, link: String); blockify!(link_wait_up, link: String); diff --git a/src/link.rs b/src/link.rs index 46cefab..9ada813 100644 --- a/src/link.rs +++ b/src/link.rs @@ -106,6 +106,18 @@ impl Connection { Ok(()) } + /// Creates a WireGuard interface. + /// + /// # Arguments + /// + /// * `link` - The name of the WireGuard interface to be created. + #[cfg(feature = "link")] + pub async fn link_add_wireguard(&self, link: String) -> Result<()> { + self.handle().link().add().wireguard(link).execute().await?; + + Ok(()) + } + /// Waits for an interface to come up, including waiting for its creation. pub async fn link_wait_up(&self, link: String) -> Result<()> { while !self.link_exists(link.clone()).await? || !self.link_is_up(link.clone()).await? { |