#!/usr/local/bin/perl # list_opts.cgi # A form for editing options set with the 'O foo=bar' directive, # and other things. require './sendmail-lib.pl'; $access{'opts'} || &error($text{'opts_ecannot'}); &ui_print_header(undef, $text{'opts_title'}, ""); $conf = &get_sendmailcf(); $ver = &check_sendmail_version($conf); $default = $text{'opts_default'}; print "
\n"; print "\n"; print "\n"; print "
$text{'opts_title'}
\n"; ($dsstr, $ds) = &find_type2("D", "S", $conf); print "\n"; ($drstr, $dr) = &find_type2("D", "R", $conf); print "\n"; print "\n"; ($dhstr, $dh) = &find_type2("D", "H", $conf); print "\n"; print "\n"; ($dmstr, $dm) = &find_option("DeliveryMode", $conf); print "\n"; ($qsostr, $qso) = &find_option("QueueSortOrder", $conf); print "\n"; print "\n"; &option_input($text{'opts_queuela'}, "QueueLA", $conf, $default, 6); &option_input($text{'opts_refusela'}, "RefuseLA", $conf, $default,6); print "\n"; print "\n"; &option_input($text{'opts_maxch'}, "MaxDaemonChildren", $conf, $default, 6); &option_input($text{'opts_throttle'}, "ConnectionRateThrottle", $conf, $default, 6); print "\n"; print "\n"; &option_input($text{'opts_minqueueage'}, "MinQueueAge", $conf, $default, 6); &option_input($text{'opts_runsize'}, "MaxQueueRunSize", $conf, $default, 8); print "\n"; print "\n"; &option_input($text{'opts_queuereturn'}, "Timeout.queuereturn", $conf, $default, 6); &option_input($text{'opts_queuewarn'}, "Timeout.queuewarn", $conf, $default, 6); print "\n"; print "\n"; &option_input($text{'opts_queue'}, "QueueDirectory", $conf, $default, 35); print "\n"; print "\n"; &option_input($text{'opts_postmaster'}, "PostMasterCopy", $conf, "Postmaster", 35); print "\n"; print "\n"; &option_input($text{'opts_forward'}, "ForwardPath", $conf, $default, 35); print "\n"; print "\n"; &option_input($text{'opts_minfree'}, "MinFreeBlocks", $conf, $default, 8, $text{'opts_blocks'}); &option_input($text{'opts_maxmessage'}, "MaxMessageSize", $conf, $default, 10, $text{'opts_bytes'}); print "\n"; print "\n"; &option_input($text{'opts_loglevel'}, "LogLevel", $conf, $default, 4); ($vstr, $v) = &find_option("SendMimeErrors", $conf); print "\n"; print "\n"; ($gstr, $g) = &find_option("MatchGECOS", $conf); print "\n", $g eq "True" ? "" : "checked"; &option_input($text{'opts_hops'}, "MaxHopCount", $conf, $default, 4); print "\n"; if ($ver >= 10) { print "\n"; &option_input($text{'opts_maxrcpt'}, "MaxRecipientsPerMessage", $conf, $default, 4); &option_input($text{'opts_maxbad'}, "BadRcptThrottle", $conf, $default, 4); print "\n"; } print "\n"; ($bstr, $b) = &find_option("DontBlameSendmail", $conf); print "\n"; print "
",&hlink("$text{'opts_ds'}","opt_DS"), " \n"; printf " $text{'opts_direct'}\n", $ds ? "" : "checked"; printf "\n", $ds ? "checked" : ""; print "
",&hlink("$text{'opts_dr'}", "opt_DR"),"\n"; printf " $text{'opts_local'}\n", $dr ? "" : "checked"; printf "\n", $dr ? "checked" : ""; print "
",&hlink("$text{'opts_dh'}", "opt_DH"),"\n"; printf " $text{'opts_local'}\n", $dh ? "" : "checked"; printf "\n", $dh ? "checked" : ""; print "
",&hlink("$text{'opts_dmode'}","opt_dmode"), " \n"; printf " $text{'default'}\n", $dm ? '' : 'checked'; foreach $dmo ('background', 'queue-only', 'interactive', 'deferred') { local $dmoc = substr($dmo, 0, 1); printf " %s\n", $dmo, $dm =~ /^$dmoc/ ? 'checked' : '', $text{"opts_$dmo"}; } print "
",&hlink("$text{'opts_qso'}","opt_qso"), " \n"; printf " $text{'default'}\n", $qso ? '' : 'checked'; foreach $dmo ('priority', 'host', 'time') { local $dmoc = substr($dmo, 0, 1); printf " %s\n", $dmo, $qso =~ /^$dmoc/ ? 'checked' : '', $text{"opts_$dmo"}; } print "
",&hlink("$text{'opts_mimebounce'}","opt_SendMimeErrors"), " \n"; printf " $text{'yes'}\n", $v eq "True" ? "checked" : ""; printf " $text{'no'}\n", $v eq "True" ? "" : "checked"; print "
",&hlink("$text{'opts_gecos'}","opt_MatchGECOS"), " \n"; printf " $text{'yes'}\n", $g eq "True" ? "checked" : ""; printf " $text{'no'}
",&hlink("$text{'opts_blame'}", "opt_DontBlameSendmail")," \n"; printf " %s\n", $b ? '' : 'checked', $text{'default'}; printf " %s
\n", $b ? 'checked' : '', $text{'opts_selected'}; print &ui_select("DontBlameSendmail", [ split(/[\s,]+/, $b) ], [ map { [ $_->[0], "$_->[0] (".(length($_->[1]) > 40 ? substr($_->[1], 0, 40)."..." : $_->[1]).")" ] } &list_dontblames() ], 5, 1, 1); print "

\n"; print "

\n"; &ui_print_footer("", $text{'index_return'}); # option_input(desc, name, &config, default, size, units) sub option_input { local ($vstr, $v) = &find_option($_[1], $_[2]); printf "".&hlink("$_[0]","opt_".$_[1])." \n", $_[4] > 20 ? "colspan=3" : ""; print &ui_opt_textbox($_[1], $v, $_[4], $_[3])." $_[5]\n"; } # options_input(desc, name, &config, default, size, units) sub options_input { local @vals = &find_options($_[1], $_[2]); printf "".&hlink("$_[0]","opt_".$_[1]). " \n", $_[4] > 20 ? "colspan=3" : ""; print &ui_radio("$_[1]_def", @vals ? 0 : 1, [ [ 1, $_[3] ], [ 0, $text{'opts_below'} ] ]),"
\n"; print &ui_textarea($_[1], join("\n", map { $_->[1] } @vals), 3, $_[4])."\n"; }