riptables

Build Status

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

toml [dependencies] riptables = "0.1"

Getting started

```rust use riptables::RIPTables; use riptables::rule::Archive;

[test]

fn test_list() { let table = "nat"; let name = "TESTNAT"; let iptables = riptables::new(false).unwrap();

iptables.newchain(table, name); iptables.insert(table, name, "-j ACCEPT", 1); let rules = iptables.listchains(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.