The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
#!/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 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";
}
print "after init. Table \"$table\"\n";


#print Dumper($table);

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";
}

$chainname = "test";
if( $success = $table->create_chain("$chainname")) {
    print "Chain $chainname is created\n";
} else {
    print "Chain $chainname is NOT created\n";
}


#@arguments = ("-t", "filter", "-A", "INPUT");
#@arguments = ("-A", "INPUT", "-s", "1.2.3.4");
#@arguments = ("-N", "test");
#@arguments = ("-N", "test");
#@arguments = ("-A test", "-p", "tcp");
#@arguments = ("-I", "test", "-s", "4.3.2.1");
@arguments = ("-I", "test", "-s", "4.3.2.1", "-j", "ACCEPT");
#@arguments = ("-t", "filter", "-N test");
#@arguments = ("-h");
#@arguments = ("--help");
#@arguments = ["--help", "-m tcp"];
print Dumper(\@arguments);

if( $success = $table->iptables_do_command(\@arguments)) {
    print "do_command ok: $success\n ERR:$!\n";
} else {
    print "do_command failed: $success\n ERR:$!\n";
}




if( $table->commit()) {
    print "Commit OK\n";
} else {
    print "Commit FAILED\n";
}