diff options
-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? { |