Crates.io | riptables |
lib.rs | riptables |
version | 0.1.0 |
source | src |
created_at | 2019-04-01 13:00:31.866307 |
updated_at | 2019-04-01 13:00:31.866307 |
description | Rust iptables |
homepage | |
repository | https://github.com/fewensa/riptables |
max_upload_size | |
id | 125163 |
size | 39,952 |
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.
[dependencies]
riptables = "0.1"
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.