\n";
# Show comment
print " $text{'rule_desc'} | \n";
printf " | \n",
$rule->{'desc'} eq "*" ? "" : $rule->{'desc'};
# Show source and destination
foreach $s ('source', 'dest') {
$not = ($rule->{$s} =~ s/^!//g);
$sm = $rule->{$s} eq '*' ? 0 :
$rule->{$s} =~ /^\@/ ? 2 :
$rule->{$s} =~ /^\%/ ? 3 : 1;
# Any address options
print " ",$text{'rule_'.$s},
" | \n";
print "\n";
print "";
printf " %s\n",
$sm == 0 ? "checked" : "",
$text{'rule_anywhere'};
print " | \n";
# Specific host option
print "";
printf " %s\n",
$sm == 1 ? "checked" : "", $text{'rule_host'};
print " | ";
printf "\n",
$sm == 1 ? $rule->{$s} : "";
print "$text{'rule_named'}\n";
print " \n";
print " ",
"$text{'rule_resolv'}\n";
print " | \n";
# Host group option
local $gv;
if ($rule->{$s} =~ /^\@(.*)$/) {
$gv = $rule->{$s};
$gv =~ s/(^|\s)@/$1/g;
}
$gi = &group_input("${s}_group", $gv, 0, 1);
if ($gi || $sm == 2) {
print "";
printf " %s\n",
$sm == 2 ? "checked" : "", $text{'rule_group'};
print " | ";
print $gi;
print " | \n";
}
# Interface option
$ii = &iface_input("${s}_iface",
$rule->{$s} =~ /^\%(.*)$/ ? $1 : undef);
if ($ii || $sm == 3) {
print "";
printf " %s\n",
$sm == 3 ? "checked" : "", $text{'rule_iface'};
print " | ";
print $ii;
print " | \n";
}
print " \n";
print " | \n";
#printf " %s\n",
# $not ? "checked" : "", $text{'rule_not'};
print " | \n";
}
# Show service
$not = ($rule->{'service'} =~ s/^!//g);
print " $text{'rule_service'} | \n";
printf " %s\n",
$rule->{'service'} eq '*' ? "checked" : "", $text{'rule_anyserv'};
printf " %s \n",
$rule->{'service'} eq '*' ? "" : "checked", $text{'rule_oneserv'};
print &service_input("service",
$rule->{'service'} eq '*' ? undef : $rule->{'service'},
0, 1);
print " | \n";
#printf " %s\n",
# $not ? "checked" : "", $text{'rule_not'};
print " | \n";
# Show action upon match
print " $text{'rule_action'} | \n";
print &action_input("action", $rule->{'action'});
print " | \n";
printf " %s\n",
$rule->{'log'} ? 'checked' : '', $text{'rule_log'};
print " | \n";
# Show time that this rule applies
$inp = &time_input("time", $rule->{'time'} eq "*" ? undef : $rule->{'time'});
if ($inp) {
print " $text{'rule_time'} | ";
printf " %s\n",
$rule->{'time'} eq "*" ? "checked" : "", $text{'rule_anytime'};
printf " %s\n",
$rule->{'time'} eq "*" ? "" : "checked", $text{'rule_seltime'};
print $inp;
print " | \n";
}
else {
print "\n";
}
# Show enabled flag
print " $text{'rule_enabled'} | \n";
printf " %s\n",
$rule->{'enabled'} ? "checked" : "", $text{'yes'};
printf " %s\n",
$rule->{'enabled'} ? "" : "checked", $text{'no'};
print " | \n";
# Show input for position of rule
print " $text{'rule_atpos'} | \n";
print " | \n";
print " |