\n";
# Display addresses to deny from
@deny = ( &find_value("deny", $conf), [ ] );
print " $text{'acl_deny'} | \n";
print " | \n";
print "
| \n";
# Display concurrent login limits
@limit = ( &find_value("limit", $conf), [ ] );
print " $text{'acl_limit'} | \n";
print "\n";
print " $text{'acl_class'} | \n",
"$text{'acl_n'} | \n",
"$text{'acl_times'} | \n",
"$text{'acl_lmsg'} | \n";
$i = 0;
foreach $l (@limit) {
print "\n";
print " | \n";
printf " %s\n",
$l->[1] =~ /^\d+$/ ? '' : 'checked', $text{'acl_unlimited'};
printf "\n",
$l->[1] =~ /^\d+$/ ? 'checked' : '';
printf " | \n",
$l->[1] =~ /^\d+$/ ? $l->[1] : '';
printf " %s\n",
lc($l->[2]) eq 'any' ? 'checked' : '', $text{'acl_any'};
printf "\n",
lc($l->[2]) eq 'any' ? '' : 'checked';
printf " | \n",
lc($l->[2]) eq 'any' ? '' : $l->[2];
print " | \n";
print " \n";
$i++;
}
print " | \n";
print "
| \n";
# Display file and byte limits
@fblimit = sort { $a->{'line'} <=> $b->{'line'} }
( &find("file-limit", $conf), &find("data-limit", $conf) );
push(@fblimit, { });
print " $text{'acl_file'} | \n";
print "\n";
print " $text{'acl_fblimit'} | \n",
"$text{'acl_inout'} | \n",
"$text{'acl_raw'} | \n",
"$text{'acl_count'} | \n",
"$text{'acl_class'} | \n";
$i = 0;
foreach $l (@fblimit) {
$f = $l->{'values'};
splice(@$f, 0, 0, '0') if ($f->[0] ne 'raw');
print "\n";
print " | \n";
print " | \n";
printf " %s\n",
$f->[0] eq 'raw' ? '' : 'checked', $text{'yes'};
printf " %s | \n",
$f->[0] eq 'raw' ? 'checked' : '', $text{'no'};
print " | \n";
print " | \n";
print " \n";
$i++;
}
print " | \n";
print "
| \n";
# File access controls
@noret = ( &find_value("noretrieve", $conf), [ ] );
print " $text{'acl_noret'} | \n";
print "\n";
print " $text{'acl_nfiles'} | \n",
"$text{'acl_nrel'} | \n",
"$text{'acl_nclass'} | \n";
$i = 0;
foreach $n (@noret) {
local (@f, %c);
foreach $nn (@$n) {
if ($nn =~ /^class=(\S+)/) { $c{$1}++; }
elsif ($nn !~ /^(absolute|relative)$/) { push(@f, $nn); }
}
print "\n";
printf " | \n",
join(" ", @f);
printf " %s\n",
$n->[0] eq 'relative' ? 'checked' : '', $text{'yes'};
printf " %s | \n",
$n->[0] eq 'relative' ? '' : 'checked', $text{'no'};
print "\n";
foreach $c (@class) {
printf " %s\n",
$c->[0], !%c || $c{$c->[0]} ? 'checked' : '', $c->[0];
}
print " | \n";
$i++;
}
print " | \n";
@allowret = ( &find_value("allow-retrieve", $conf), [ ] );
print " $text{'acl_allowret'} | \n";
print "\n";
print " $text{'acl_afiles'} | \n",
"$text{'acl_arel'} | \n",
"$text{'acl_aclass'} | \n";
$i = 0;
foreach $n (@allowret) {
local (@f, %c);
foreach $nn (@$n) {
if ($nn =~ /^class=(\S+)/) { $c{$1}++; }
elsif ($nn !~ /^(absolute|relative)$/) { push(@f, $nn); }
}
print "\n";
printf " | \n",
join(" ", @f);
printf " %s\n",
$n->[0] eq 'relative' ? 'checked' : '', $text{'yes'};
printf " %s | \n",
$n->[0] eq 'relative' ? '' : 'checked', $text{'no'};
print "\n";
foreach $c (@class) {
printf " %s\n",
$c->[0], !%c || $c{$c->[0]} ? 'checked' : '', $c->[0];
}
print " | \n";
$i++;
}
print " | \n";
print "
| \n";
# Display time-limit options
foreach $l (&find_value("limit-time", $conf)) {
if ($l->[0] eq '*') {
$limit{'anonymous'} = $limit{'guest'} = $l->[1];
}
else {
$limit{$l->[0]} = $l->[1];
}
}
print " $text{'acl_alimit'} | \n";
printf " %s\n",
$limit{'anonymous'} ? '' : 'checked', $text{'acl_unlimited'};
printf "\n",
$limit{'anonymous'} ? 'checked' : '';
printf " %s | \n",
$limit{'anonymous'}, $text{'acl_mins'};
print "$text{'acl_glimit'} | \n";
printf " %s\n",
$limit{'guest'} ? '' : 'checked', $text{'acl_unlimited'};
printf "\n",
$limit{'guest'} ? 'checked' : '';
printf " %s | \n",
$limit{'guest'}, $text{'acl_mins'};
# Other security options
$lf = &find_value('loginfails', $conf);
print " $text{'acl_fails'} | \n";
printf " %s\n",
$lf ? '' : 'checked', $text{'default'};
printf "\n",
$lf ? 'checked' : '';
print " | \n";
$pr = &find_value('private', $conf);
print "$text{'acl_private'} | \n";
printf " %s\n",
$pr->[0] eq 'yes' ? 'checked' : '', $text{'yes'};
printf " %s | \n",
$pr->[0] eq 'yes' ? '' : 'checked', $text{'no'};
print " |