From 0b6b49ddeed339bae981053b7db886ef0648d559 Mon Sep 17 00:00:00 2001 From: chayleaf Date: Sun, 11 Aug 2024 01:29:09 +0700 Subject: [PATCH] small changes --- flake.nix | 1 + src/nftables.rs | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/flake.nix b/flake.nix index 655c1e7..af9e93d 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,7 @@ pkgs = import nixpkgs { system = "x86_64-linux"; }; in pkgs.mkShell rec { name = "unbound-rust-mod-shell"; + nativeBuildInputs = [ pkgs.rustc pkgs.cargo pkgs.nftables ]; LIBMNL_LIB_DIR = "${nixpkgs.lib.getLib pkgs.libmnl}/lib"; LIBNFTNL_LIB_DIR = "${nixpkgs.lib.getLib (pkgs.libnftnl.overrideAttrs (old: { patches = (old.patches or []) ++ [ ./libnftnl-fix.patch ]; diff --git a/src/nftables.rs b/src/nftables.rs index 7eab454..584b67f 100644 --- a/src/nftables.rs +++ b/src/nftables.rs @@ -11,8 +11,8 @@ use std::{ }; use ipnet::{IpNet, Ipv4Net, Ipv6Net}; -use nftnl::{nftnl_sys, set::SetKey, Batch, FinalizedBatch, MsgType, NlMsg}; use mnl::mnl_sys; +use nftnl::{nftnl_sys, set::SetKey, Batch, FinalizedBatch, MsgType, NlMsg}; fn cidr_bound_ipv4(net: Ipv4Net) -> Option { let data = u32::from(net.network()); @@ -224,7 +224,12 @@ impl Set1 { nftnl_sys::nftnl_set_elem_add(self.as_mut_ptr(), elem); } } - pub fn add_cidrs(&self, socket: &mnl::Socket, flush: bool, cidrs: impl IntoIterator) -> io::Result<()> { + pub fn add_cidrs( + &self, + socket: &mnl::Socket, + flush: bool, + cidrs: impl IntoIterator, + ) -> io::Result<()> { let mut batch = Batch::new(); // FIXME: why 2048? let max_batch_size = 2048; @@ -321,7 +326,7 @@ pub fn get_sets(socket: &mnl::Socket) -> io::Result> { #[cfg(test)] mod test { - use std::{ffi::CString, net::Ipv6Addr}; + use std::net::Ipv6Addr; use ipnet::Ipv6Net; @@ -329,10 +334,6 @@ mod test { #[test] fn test_nftables() { - let table = nftnl::Table::new( - &CString::from_vec_with_nul(b"test\0".to_vec()).unwrap(), - nftnl::ProtoFamily::Inet, - ); let socket = mnl::Socket::new(mnl::Bus::Netfilter).unwrap(); let sets = get_sets(&socket).unwrap(); assert!(!sets.is_empty());