#!/usr/local/bin/perl # conf_logging.cgi # Display global logging options require './bind8-lib.pl'; $access{'defaults'} || &error($text{'logging_ecannot'}); &ui_print_header(undef, $text{'logging_title'}, ""); &ReadParse(); $conf = &get_config(); $logging = &find("logging", $conf); $mems = $logging ? $logging->{'members'} : [ ]; print "
\n"; print "\n"; print "\n"; print "
$text{'logging_header'}
\n"; print "\n"; print "\n"; print "\n"; print "
$text{'logging_chans'} \n"; # display default channels @defchans = ( { 'name' => 'default_syslog', 'syslog' => 'daemon', 'severity' => 'info' }, { 'name' => 'default_debug', 'file' => 'named.run', 'severity' => 'dynamic' }, { 'name' => 'default_stderr', 'fd' => 'stderr', 'severity' => 'info' }, { 'name' => 'null', 'null' => 1 } ); foreach $c (@defchans) { print "
\n"; print "\n"; print "\n"; print "\n"; if ($c->{'syslog'}) { print "\n"; } elsif ($c->{'file'}) { print "\n"; } elsif ($c->{'fd'}) { print "\n"; } else { print "\n"; } print "\n"; print "\n"; if ($c->{'severity'}) { print "\n"; } else { print "\n"; } print "
$text{'logging_cname'}$c->{'name'}
$text{'logging_to'}$text{'logging_syslog'} ", "$c->{'syslog'}$text{'logging_file'} $c->{'file'}$text{'logging_fd'} $c->{'fd'}$text{'logging_null'}
$text{'logging_sev'}$c->{'severity'}
$text{'logging_any'}

\n"; } # display user-defined channels @chans = &find("channel", $mems); @channames = ( (map { $_->{'value'} } @chans) , 'default_syslog', 'default_debug', 'default_stderr', 'null' ); push(@chans, { }) if ($in{'add'}); for($i=0; $i<@chans; $i++) { $cmems = $chans[$i]->{'members'}; $file = &find("file", $cmems); $filestr = $file ? join(" ", @{$file->{'values'}}) : ""; $syslog = &find_value("syslog", $cmems); $null = &find("null", $cmems); print "
\n" if ($i); print "
\n"; print "\n"; printf "\n", $chans[$i]->{'value'}; print "\n"; print "\n", $null ? "checked" : "", $text{'logging_null'}; $sev = &find("severity", $cmems); print "\n"; print "\n", $sev->{'value'} eq 'debug' ? $sev->{'values'}->[1] : ""; print "\n"; print "\n"; print "
$text{'logging_cname'}
$text{'logging_to'}\n"; printf " %s\n", $file ? "checked" : "", $text{'logging_file'}; printf " %s
\n", $file->{'value'}, &file_chooser_button("file_$i"); print "    $text{'logging_versions'}\n"; printf " %s\n", $filestr =~ /\sversions\s/i ? "" : "checked", $text{'logging_ver1'}; printf " %s\n", $filestr =~ /\sversions\s+unlimited/i ? "checked" : "", $text{'logging_ver2'}; printf "\n", $filestr =~ /\sversions\s+(\d+)/i ? "checked" : ""; printf "
\n", $filestr =~ /\sversions\s+(\d+)/i ? $1 : ""; $size = $filestr =~ /\ssize\s+(\S+)/ ? $1 : ''; $size = undef if ($size eq 'unlimited'); print "    $text{'logging_size'}\n"; printf " %s\n", $size ? "" : "checked", $text{'logging_sz1'}; printf "\n", $size ? "checked" : ""; printf "
\n", $size; printf " %s\n", $syslog ? "checked" : "", $text{'logging_syslog'}; print "  \n"; printf " %s
$text{'logging_sev'}\n"; printf "
$text{'logging_pcat'} \n"; &yes_no_default("print-category-$i", &find_value("print-category", $cmems)); print " $text{'logging_psev'} \n"; &yes_no_default("print-severity-$i", &find_value("print-severity", $cmems)); print "
$text{'logging_ptime'} \n"; &yes_no_default("print-time-$i", &find_value("print-time", $cmems)); print "
\n"; } print "$text{'logging_add'}\n"; print "
$text{'logging_cats'}\n"; print " ", "\n"; @cats = ( &find("category", $mems), { } ); for($i=0; $i<@cats; $i++) { print "\n"; } print "
$text{'logging_cat'}$text{'logging_cchans'}
\n"; local %cchan; foreach $c (@{$cats[$i]->{'members'}}) { $cchan{$c->{'name'}}++; } foreach $c (@channames) { printf " %s\n", $c, $cchan{$c} ? "checked" : "", $c; } print "
\n"; print "
\n"; &ui_print_footer("", $text{'index_return'}); # yes_no_default(name, value) sub yes_no_default { printf " $text{'yes'}\n", lc($_[1]) eq 'yes' ? 'checked' : ''; printf " $text{'no'}\n", lc($_[1]) eq 'no' ? 'checked' : ''; printf " $text{'default'}\n", !$_[1] ? 'checked' : ''; }