#!/usr/local/bin/perl # edit_log.cgi # Display a form for editing or creating a new log destination require './syslog-lib.pl'; &ReadParse(); $access{'noedit'} && &error($text{'edit_ecannot'}); $access{'syslog'} || &error($text{'edit_ecannot'}); $conf = &get_config(); if ($in{'new'}) { &ui_print_header(undef, $text{'create_title'}, ""); $log = { 'active' => '1', 'sync' => 1, 'file' => -d '/var/log' ? '/var/log/' : -d '/var/adm' ? '/var/adm/' : undef }; } else { &ui_print_header(undef, $text{'edit_title'}, ""); $log = $conf->[$in{'idx'}]; &can_edit_log($log) || &error($text{'edit_ecannot2'}); } # Log destination section print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'edit_header1'}
\n"; print "\n"; printf "\n", $log->{'file'} ? 'checked' : '', $text{'edit_file'}; printf "\n"; if ($config{'pipe'} == 1) { print "\n"; printf "\n", $log->{'pipe'} ? 'checked' : '', $text{'edit_pipe'}; printf "\n", $log->{'pipe'}, &file_chooser_button("pipe"); } elsif ($config{'pipe'} == 2) { print "\n"; printf "\n", $log->{'pipe'} ? 'checked' : '', $text{'edit_pipe2'}; printf "\n", $log->{'pipe'}; } if ($config{'socket'}) { print "\n"; printf "\n", $log->{'socket'} ? 'checked' : '', $text{'edit_socket'}; printf "\n", $log->{'socket'}, &file_chooser_button("socket"); } print "\n"; printf "\n", $log->{'host'} ? 'checked' : '', $text{'edit_host'}; printf "\n", $log->{'host'}; print "\n"; printf "\n", $log->{'users'} ? 'checked' : '', $text{'edit_users'}; printf "\n", join(" ", @{$log->{'users'}}), &user_chooser_button("users", 1); print "\n"; printf "\n", $log->{'all'} ? 'checked' : '', $text{'edit_allusers'}; print "\n", $log->{'active'} ? '' : 'checked', $text{'no'}; if ($config{'tags'}) { print "\n"; } print "
$text{'edit_logto'} %s %s\n", $log->{'file'}, &file_chooser_button("file"); if ($config{'sync'}) { printf " %s\n", $log->{'sync'} ? 'checked' : '', $text{'edit_sync'}; } print "
%s %s
%s
%s %s
%s
%s %s
%s
$text{'edit_active'} \n"; printf " %s\n", $log->{'active'} ? 'checked' : '', $text{'yes'}; printf " %s
$text{'edit_tag'} \n"; print "

\n"; # Log selection section print "\n"; print "\n"; print "
$text{'edit_header2'}
\n"; @facil = split(/\s+/, $config{'facilities'}); print " ", "\n"; $i = 0; foreach $s (@{$log->{'sel'}}, ".none") { ($f, $p) = split(/\./, $s); $p =~ s/warn$/warning/; $p =~ s/panic$/emerg/; $p =~ s/error$/err/; print "\n", $f =~ /,/ ? join(" ", split(/,/, $f)) : ''; print "\n"; $i++; } print "
$text{'edit_facil'}$text{'edit_pri'}
\n"; printf "\n", $f =~ /,/ ? '' : 'checked'; print " \n"; printf " %s\n", $f =~ /,/ ? 'checked' : '', $text{'edit_many'}; printf "\n"; printf " %s \n", $p eq 'none' ? 'checked' : '', $text{'edit_none'}; if ($config{'pri_all'}) { printf " %s \n", $p eq '*' ? 'checked' : '', $text{'edit_all'}; } printf "\n", $p eq 'none' || $p eq '*' ? '' : 'checked'; if ($config{'pri_dir'} == 1) { print "\n"; $p =~ s/^[!=]*//; } elsif ($config{'pri_dir'} == 2) { print "\n"; $p =~ s/^[<=>]*//; } else { print $text{'edit_pdir0'}; } local $pfound = ($p eq '*' || $p eq 'none'); print "
\n"; print "\n"; print "\n"; if (!$in{'new'}) { if ($log->{'file'} && -f $log->{'file'}) { print "\n"; } print "\n"; } print "

\n"; &ui_print_footer("", $text{'index_return'});