#!/usr/bin/perl -w
use lib qw(../blib/lib);
use lib qw(../blib/arch);
use lib qw(blib/lib);
use lib qw(blib/arch);
#use ExtUtils::testlib;
use diagnostics;
use Data::Dumper;
use IPTables::libiptc;
print "start\n";
$table_name = 'filter';
my $table = IPTables::libiptc::init("$table_name");
if (not defined $table) {
print "\$table is undef\n -=-=- STRERR: $!\n";
exit 1
}
my $success;
#my $chainname = "FORWARD";
my $chainname = "INPUT";
if( $success = $table->builtin("$chainname")) {
print "Chain is buildin: $chainname\n";
} else {
print "Chain is NOT buildin: $chainname\n";
}
sub call_do_command($) {
$array_ref = shift;
print "do_command:\"" . "@$array_ref" . "\"\n";
if( $success = $table->iptables_do_command($array_ref)) {
print " *do_command ok: $success\n *ERR:$!\n\n";
} else {
print " *do_command failed: $success\n *ERR:$!\n\n";
}
}
#@arguments = ("-t", "filter", "-A", "INPUT");
#@arguments = ("-A", "$chainname", "-s", "1.2.3.4");
#@arguments = ("-N", "test");
#@arguments = ("badehat", "-N test");
#@arguments = ("badehat", "-N", "test");
#@arguments = ("-A test", "-p", "tcp");
#@arguments = ("-I", "test", "-s", "4.3.2.1");
#@arguments = ("-I", "test", "-s", "1.2.3.4", "-j", "ACCEPT");
#@arguments = ("-t", "filter", "-N test");
#@arguments = ("-h");
#@arguments = ("--help");
#@arguments = ["--help", "-m tcp"];
#@arguments = ("-A", "$chainname", "-s", "1.2.3.4", "-mtcp");
@arguments = ("-A", "$chainname", "-p", "tcp", "--dport", "123");
#@arguments = ("-A", "$chainname" );
#@arguments = ("-t", "filter", "-N test");
my $res = call_do_command(\@arguments);
print Dumper(\@arguments);
if( $table->commit()) {
print "Commit OK\n";
} else {
print "Commit FAILED\n";
}