1 unstable release
0.1.0 | Apr 1, 2019 |
---|
#11 in #iptables
33KB
689 lines
riptables
riptables
provides bindings for iptables application in Linux. (Modified from rust-iptables)
Relative to rust-iptables, the parsing function of the call output is added, and the RIPTRule object is returned.
Usage
[dependencies]
riptables = "0.1"
Getting started
use riptables::RIPTables;
use riptables::rule::Archive;
#[test]
fn test_list() {
let table = "nat";
let name = "TESTNAT";
let iptables = riptables::new(false).unwrap();
iptables.new_chain(table, name);
iptables.insert(table, name, "-j ACCEPT", 1);
let rules = iptables.list_chains(table, name).unwrap();
iptables.delete(table, name, "-j ACCEPT");
iptables.delete_chain(table, name);
assert_eq!(rules.len(), 2);
for rule in rules {
println!("{:?}", rule);
assert_eq!(rule.table, "nat".to_string());
assert_eq!(rule.chain, name.to_string());
match rule.archive {
Archive::NewChain => assert_eq!(rule.origin, "-N TESTNAT".to_string()),
Archive::Append => assert_eq!(rule.origin, "-A TESTNAT -j ACCEPT".to_string()),
_ => {}
}
}
}
For more information, please check the test file in tests
folder.
Dependencies
~1.5MB
~37K SLoC