#!/usr/local/bin/perl
# Show allowed and denied lists
require './tcpwrappers-lib.pl';
&ReadParse();
&ui_print_header(undef, $text{'index_title'}, "", "intro", 1, 1);
# Start of tabs
@types = ('allow', 'deny');
print &ui_tabs_start(
[ map { [ $_, $text{'index_'.$_.'title'},
"index.cgi?type=$_" ] } @types ],
"type",
$in{'type'} || "allow",
1);
# Tables of rules
foreach my $type ('allow', 'deny') {
print &ui_tabs_start_tab("type", $type);
my $file = $type eq 'allow' ? $config{'hosts_allow'}
: $config{'hosts_deny'};
@rules = &list_rules($file);
# Build grid of rules
@table = ( );
foreach my $r (@rules) {
push(@table, [
{ 'type' => 'checkbox', 'name' => 'd',
'value' => $r->{'id'} },
"".
"$r->{'service'}",
$r->{'host'},
$r->{'cmd'} ? join("
", split /:/, $r->{'cmd'})
: $text{'index_none'},
]);
}
# Show them
print &ui_form_columns_table(
"delete_rules.cgi",
[ [ "delete", $text{'index_delete'} ] ],
1,
[ [ "edit_rule.cgi?$type=1&new=1", $text{'index_add'} ] ],
[ [ $type, 1 ] ],
[ "", $text{'index_service'},
$text{'index_hosts'}, $text{'index_cmd'}, ],
100,
\@table,
undef,
0,
undef,
&text('index_norule', $file),
);
print &ui_tabs_end_tab("type", $type);
}
print &ui_tabs_end(1);
&ui_print_footer("/", $text{'index_return'});