Skip to content

fewensa/riptables

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages