Skip to content

Commit

Permalink
chore: update forked rtnetlink crate
Browse files Browse the repository at this point in the history
  • Loading branch information
hack3ric committed Jan 17, 2025
1 parent c95fdef commit 20205fb
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 13 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions src/integration_tests/helpers/kernel/rtnl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ use rtnetlink::packet_utils::nla::Nla;
use rtnetlink::packet_utils::Emitable;
use rtnetlink::{Handle, IpVersion, LinkMessageBuilder, LinkUnspec, RouteMessageBuilder};
use std::cmp::Ordering;
use std::net::IpAddr;

pub async fn create_dummy_link(handle: &Handle, addr: IpWithPrefix) -> anyhow::Result<u32> {
let name: String = "dummy_"
Expand Down Expand Up @@ -94,7 +93,7 @@ fn rule_attr_sort(a: &RuleAttribute, b: &RuleAttribute) -> Ordering {
}

pub async fn get_ip_route(handle: &Handle, ip_version: IpVersion, table: u32) -> anyhow::Result<Vec<RouteMessage>> {
let mut msg = RouteMessageBuilder::<IpAddr>::new().table_id(table).build();
let mut msg = RouteMessageBuilder::new().table_id(table).build();
msg.header.address_family = match ip_version {
IpVersion::V4 => AddressFamily::Inet,
IpVersion::V6 => AddressFamily::Inet6,
Expand Down
9 changes: 4 additions & 5 deletions src/integration_tests/kernel_linux.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ use nftables::stmt;
use rand::distributions::Alphanumeric;
use rand::Rng;
use rtnetlink::{IpVersion, RouteMessageBuilder};
use std::net::IpAddr;
use std::time::Duration;
use tokio::select;
use tokio::time::sleep;
Expand Down Expand Up @@ -107,13 +106,13 @@ async fn test_redirect_to_ip() -> anyhow::Result<()> {
assert!(ip_rules.contains(&ip_rule_exp));

let mut ip_routes_exp = [
RouteMessageBuilder::<IpAddr>::new()
RouteMessageBuilder::new()
.table_id(table_index)
.destination_prefix("172.20.0.0".parse()?, 16)?
.output_interface(dummy_index)
.gateway("10.128.128.1".parse()?)?
.build(),
RouteMessageBuilder::<IpAddr>::new()
RouteMessageBuilder::new()
.table_id(table_index)
.destination_prefix("172.21.0.0".parse()?, 16)?
.output_interface(dummy_index)
Expand Down Expand Up @@ -169,13 +168,13 @@ async fn test_redirect_to_ipv6() -> anyhow::Result<()> {
assert!(ip_rules.contains(&ip_rule_exp));

let mut ip_routes_exp = [
RouteMessageBuilder::<IpAddr>::new()
RouteMessageBuilder::new()
.table_id(table_index)
.destination_prefix("fc00::".parse()?, 16)?
.output_interface(dummy_index)
.gateway("fc64::ffff".parse()?)?
.build(),
RouteMessageBuilder::<IpAddr>::new()
RouteMessageBuilder::new()
.table_id(table_index)
.destination_prefix("fc65:6565::".parse()?, 32)?
.output_interface(dummy_index)
Expand Down
10 changes: 5 additions & 5 deletions src/kernel/rtnl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ impl<K: Kernel> RtNetlink<K> {
};

// ...and then add route to the table...
let mut msg = RouteMessageBuilder::<IpAddr>::new()
let mut msg = RouteMessageBuilder::new()
.destination_prefix(prefix.prefix(), prefix.len())
.expect("destination prefix should be valid")
.table_id(table_id)
Expand Down Expand Up @@ -128,7 +128,7 @@ impl<K: Kernel> RtNetlink<K> {
}

async fn del_route(&self, table_id: u32, prefix: IpPrefix) {
let msg = RouteMessageBuilder::<IpAddr>::new()
let msg = RouteMessageBuilder::new()
.destination_prefix(prefix.prefix(), prefix.len())
.expect("destination prefix should be valid")
.table_id(table_id)
Expand Down Expand Up @@ -242,7 +242,7 @@ impl<K: Kernel> RtNetlink<K> {
let new_attrs = Self::get_route2(handle, *next_hop).await?;
if *attrs != new_attrs {
*attrs = new_attrs.clone();
let mut msg = RouteMessageBuilder::<IpAddr>::new()
let mut msg = RouteMessageBuilder::new()
.destination_prefix(prefix.prefix(), prefix.len())
.expect("destination prefix should be valid")
.table_id(*table_id)
Expand All @@ -258,11 +258,11 @@ impl<K: Kernel> RtNetlink<K> {
Self::get_route2(&self.handle, ip).await
}
async fn get_route2(handle: &Handle, ip: IpAddr) -> Result<Vec<RouteAttribute>> {
let msg = RouteMessageBuilder::<IpAddr>::new()
let msg = RouteMessageBuilder::new()
.destination_prefix(ip, if ip.is_ipv4() { 32 } else { 128 })
.expect("destination prefix should be valid")
.build();
let mut msg = (handle.route()).get(msg).dump(false).execute();
let mut msg = handle.route().get(msg).execute();
let Some(rt) = msg.try_next().await? else {
unreachable!();
};
Expand Down

0 comments on commit 20205fb

Please sign in to comment.