#!/usr/bin/perl
use IPTables::IPv4;
BEGIN { $| = 1; print "1..19\n"; }
$testiter = 1;
my $table = IPTables::IPv4::init('filter');
unless ($table) {
print "not ok 1\n";
exit(1);
}
print "ok ", $testiter++, "\n";
@testrules = ({'in-interface' => "tap0",
'protocol' => "icmp"},
{'in-interface' => "tap0",
'protocol' => "icmp",
'icmp-type' => "ping"},
{'in-interface' => "tap0",
'matches' => ['limit']},
{'in-interface' => "tap0",
'matches' => ['limit'],
'limit' => "5/sec"},
{'in-interface' => "tap0",
'matches' => ['limit'],
'protocol' => "icmp",
'icmp-type' => "ping"},
{'in-interface' => "tap0",
'protocol' => "icmp",
'icmp-type' => "ping",
'matches' => ['limit']});
foreach my $rule (@testrules) {
$table->append_entry("FORWARD", $rule) || print "# $!\nnot ";
print "ok ", $testiter++, "\n";
$table->delete_entry("FORWARD", $rule) || print "# $!\nnot ";
print "ok ", $testiter++, "\n";
$table->delete_entry("FORWARD", $rule) && print "not ";
print "ok ", $testiter++, "\n";
}
foreach my $chain ($table->list_chains()) {
$table->flush_entries($chain);
}
exit(0);
# vim: ts=4