diff options
Diffstat (limited to 'src/link.rs')
-rw-r--r-- | src/link.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/link.rs b/src/link.rs index 209b8a6..ffbaa99 100644 --- a/src/link.rs +++ b/src/link.rs @@ -147,3 +147,20 @@ pub async fn wait_exists(link: String) -> Result<()> { Ok(()) } + +/// Returns the index of an interface. +pub async fn index(link: String) -> Result<u32> { + let (conn, handle, _) = rtnetlink::new_connection()?; + tokio::spawn(conn); + + let link = handle + .link() + .get() + .match_name(link.clone()) + .execute() + .try_next() + .await? + .ok_or(Error::LinkNotFound(link))?; + + Ok(link.header.index) +} |