feat: update ipset
This commit is contained in:
22
src/ipset.rs
Normal file
22
src/ipset.rs
Normal file
@@ -0,0 +1,22 @@
|
||||
use rust_util::{opt_result, simple_error, XResult};
|
||||
use std::ffi::OsStr;
|
||||
use std::process::Command;
|
||||
|
||||
const CMD_IPSET: &str = "ipset";
|
||||
|
||||
fn execute_ipset<I, S>(args: I) -> XResult<(Vec<u8>, Vec<u8>)>
|
||||
where
|
||||
I: IntoIterator<Item = S>,
|
||||
S: AsRef<OsStr>,
|
||||
{
|
||||
let mut cmd_ipset = Command::new(CMD_IPSET);
|
||||
cmd_ipset.args(args);
|
||||
let cmd_output = opt_result!(cmd_ipset.output(), "Execute ipset with failed: {}");
|
||||
if !cmd_output.status.success() {
|
||||
return simple_error!(
|
||||
"Execute ipset not failed, exit code: {:?}",
|
||||
cmd_output.status.code()
|
||||
);
|
||||
}
|
||||
Ok((cmd_output.stdout, cmd_output.stderr))
|
||||
}
|
||||
Reference in New Issue
Block a user