aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-08-17 15:16:14 +0200
committerHimbeer <himbeer@disroot.org>2024-08-17 15:16:14 +0200
commitfafaae739c798c0a86193725e535e1cfdba230fa (patch)
tree71cc29880b0bc788b4f16c8a93f4c664e1b9f996
parentb931675ccfe4a00fd8edb5ba058f650a42bc7003 (diff)
Add support for adding WireGuard links
-rw-r--r--src/blocking.rs2
-rw-r--r--src/link.rs12
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? {