riptables

Crates.ioriptables
lib.rsriptables
version0.1.0
sourcesrc
created_at2019-04-01 13:00:31.866307
updated_at2019-04-01 13:00:31.866307
descriptionRust iptables
homepage
repositoryhttps://github.com/fewensa/riptables
max_upload_size
id125163
size39,952
(fewensa)

documentation

README

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

[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.

Commit count: 21

cargo fmt