aboutsummaryrefslogtreecommitdiff
path: root/src/route.rs
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-11-14 17:58:56 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-11-14 17:58:56 +0100
commitb4ff762972ec928fdbcad10a51a1a0b6a7c0fd3f (patch)
tree2056173ea8d3ead1450dd8982bde8e9fea1d34ba /src/route.rs
parent1c2a4a8ace82f3ed0696e112b0434301538b3500 (diff)
expose async api
Diffstat (limited to 'src/route.rs')
-rw-r--r--src/route.rs42
1 files changed, 14 insertions, 28 deletions
diff --git a/src/route.rs b/src/route.rs
index b180e96..cd5e032 100644
--- a/src/route.rs
+++ b/src/route.rs
@@ -5,9 +5,8 @@ use std::net::{Ipv4Addr, Ipv6Addr};
use futures::{future, TryStreamExt};
use netlink_packet_route::{RouteMessage, RT_SCOPE_LINK};
use rtnetlink::IpVersion;
-use tokio::runtime::Runtime;
-async fn do_flush4(link: String) -> Result<()> {
+pub async fn flush4(link: String) -> Result<()> {
let (conn, handle, _) = rtnetlink::new_connection()?;
tokio::spawn(conn);
@@ -43,11 +42,7 @@ async fn do_flush4(link: String) -> Result<()> {
Ok(())
}
-// pub fn flush4(link: String) -> Result<()> {
-// Runtime::new()?.block_on(do_flush4(link))
-// }
-
-async fn do_flush6(link: String) -> Result<()> {
+pub async fn flush6(link: String) -> Result<()> {
let (conn, handle, _) = rtnetlink::new_connection()?;
tokio::spawn(conn);
@@ -83,18 +78,12 @@ async fn do_flush6(link: String) -> Result<()> {
Ok(())
}
-// pub fn flush6(link: String) -> Result<()> {
-// Runtime::new()?.block_on(do_flush6(link))
-// }
-//
-// pub fn flush(link: String) -> Result<()> {
-// flush4(link.clone())?;
-// flush6(link)?;
-//
-// Ok(())
-// }
-
-async fn do_add4(dst: Ipv4Addr, prefix_len: u8, rtr: Option<Ipv4Addr>, link: String) -> Result<()> {
+pub async fn add4(
+ dst: Ipv4Addr,
+ prefix_len: u8,
+ rtr: Option<Ipv4Addr>,
+ link: String,
+) -> Result<()> {
let (conn, handle, _) = rtnetlink::new_connection()?;
tokio::spawn(conn);
@@ -126,11 +115,12 @@ async fn do_add4(dst: Ipv4Addr, prefix_len: u8, rtr: Option<Ipv4Addr>, link: Str
Ok(())
}
-// pub fn add4(dst: Ipv4Addr, prefix_len: u8, rtr: Option<Ipv4Addr>, link: String) -> Result<()> {
-// Runtime::new()?.block_on(do_add4(dst, prefix_len, rtr, link))
-// }
-
-async fn do_add6(dst: Ipv6Addr, prefix_len: u8, rtr: Option<Ipv6Addr>, link: String) -> Result<()> {
+pub async fn add6(
+ dst: Ipv6Addr,
+ prefix_len: u8,
+ rtr: Option<Ipv6Addr>,
+ link: String,
+) -> Result<()> {
let (conn, handle, _) = rtnetlink::new_connection()?;
tokio::spawn(conn);
@@ -161,7 +151,3 @@ async fn do_add6(dst: Ipv6Addr, prefix_len: u8, rtr: Option<Ipv6Addr>, link: Str
add.execute().await?;
Ok(())
}
-
-// pub fn add6(dst: Ipv6Addr, prefix_len: u8, rtr: Option<Ipv6Addr>, link: String) -> Result<()> {
-// Runtime::new()?.block_on(do_add6(dst, prefix_len, rtr, link))
-// }