#!/usr/local/bin/perl # conf_controls.cgi # Display controls options require './bind8-lib.pl'; $access{'defaults'} || &error($text{'controls_ecannot'}); &ui_print_header(undef, $text{'controls_title'}, ""); &ReadParse(); $conf = &get_config(); $controls = &find("controls", $conf); $mems = $controls->{'members'}; my ($inet, $unix, $addr, $port, $file, $perms, $owner, $group); my @addrvals=(); foreach $mem ( @$mems ) { if ($mem->{'name'} eq "inet") { $inet=$mem; # Directive reads # INET ( ip_addr | * ) PORT ip_port ALLOW address_match_list # the parser will see the address matchlist as a set of members # everything else is a value. my $v=$inet->{'values'}; $addr=$v->[0]; $port=$v->[2]; foreach $addrmatch (@{$inet->{'members'}}) { push @addrvals, $addrmatch->{'name'}; } } elsif ($mem->{'name'} eq "unix") { $unix=$mem; # Directive reads # UNIX path_name PERM number OWNER number GROUP number; my $v=$unix->{'values'}; $file=$v->[0]; $perms=$v->[2]; $owner=$v->[4]; $group=$v->[6]; } } $inetdefault=defined($inet)?"":" checked"; $inetset=defined($inet)?" checked":""; $unixdefault=defined($unix)?"":" checked"; $unixset=defined($unix)?" checked":""; print "
\n"; print "\n"; print "\n"; print "
$text{'controls_header'}
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
", $text{'controls_inet'}, "\n"; print " ", $text{'default'}, "\n"; print "\n"; print "", $text{'controls_port'}, "", "", $text{'controls_allow'}, "", "\n"; print "
", $text{'controls_unix'}, "\n"; print " ", $text{'default'}, "\n"; print "\n"; print "", $text{'controls_permissions'}, "", "", $text{'controls_owner'}, "", "\n", $text{'controls_group'}, "\n"; print "
\n"; print "
\n"; &ui_print_footer("", $text{'index_return'});