diff --git a/squid/chown.cgi b/squid/chown.cgi index 6153f7055..ede4e3b87 100755 --- a/squid/chown.cgi +++ b/squid/chown.cgi @@ -2,26 +2,23 @@ # chown.cgi # Change permissions on cache/log/pid files after a user change +use strict; +use warnings; +our (%text, %in, %access, $squid_version, %config); require './squid-lib.pl'; $access{'admopts'} || &error($text{'eadm_ecannot'}); -$| = 1; -&ui_print_header(undef, $text{'chown_header'}, ""); -$conf = &get_config(); + +&ui_print_unbuffered_header(undef, $text{'chown_header'}, ""); +my $conf = &get_config(); # Stop squid -if ($pidstruct = &find_config("pid_filename", $conf)) { - $pidfile = $pidstruct->{'values'}->[0]; - } -else { $pidfile = $config{'pid_file'}; } -if (open(PID, $pidfile)) { - =~ /(\d+)/; $pid = $1; - close(PID); - } +my $pid = &is_squid_running(); +my $stopped = 0; if ($pid && kill(0, $pid)) { print "

$text{'chown_stop'}
\n"; system("$config{'squid_path'} -f $config{'squid_conf'} ". "-k shutdown >/dev/null 2>&1"); - for($i=0; $i<40; $i++) { + for(my $i=0; $i<40; $i++) { if (!kill(0, $pid)) { last; } sleep(1); } @@ -31,17 +28,17 @@ if ($pid && kill(0, $pid)) { # Change ownership print "

$text{'chown_chown'}
\n"; -($user, $group) = &get_squid_user($conf); +my ($user, $group) = &get_squid_user($conf); &chown_files($user, $group, $conf); print "$text{'chown_done'}
\n"; # Re-start Squid if ($stopped) { print "

$text{'chown_restart'}
\n"; - $temp = &transname(); + my $temp = &transname(); system("$config{'squid_path'} -sY -f $config{'squid_conf'} >$temp 2>&1 /dev/null 2>&1"); diff --git a/squid/edit_admin.cgi b/squid/edit_admin.cgi index 6f0623445..f8d139822 100755 --- a/squid/edit_admin.cgi +++ b/squid/edit_admin.cgi @@ -2,95 +2,73 @@ # edit_admin.cgi # A form for editing admin options +use strict; +use warnings; +our (%text, %in, %access, $squid_version, %config); require './squid-lib.pl'; $access{'admopts'} || &error($text{'eadm_ecannot'}); &ui_print_header(undef, $text{'eadm_header'}, "", "edit_admin", 0, 0, 0, &restart_button()); -$conf = &get_config(); +my $conf = &get_config(); -print "

\n"; -print "\n"; -print "\n"; -print "
$text{'eadm_aao'}
\n"; +print &ui_form_start("save_admin.cgi", "post"); +print &ui_table_start($text{'eadm_aao'}, "width=100%", 4); if ($squid_version < 2) { - print "\n"; - $v = &find_config("cache_effective_user", $conf); - print "\n"; + my $v = &find_config("cache_effective_user", $conf); + print &ui_table_row($text{'eadm_runasuu'}, + &ui_radio("effective_def", $v ? 0 : 1, + [ [ 1, $text{'eadm_nochange'} ], + [ 0, $text{'eadm_user'}." ". + &unix_user_input("effective_u", + $v ? $v->{'values'}->[0] : "")." ". + $text{'eadm_group'}." ". + &unix_group_input("effective_g", + $v ? $v->{'values'}->[1] : "") ] ])); } else { - print "\n"; print &opt_input($text{'eadm_runasuu'}, "cache_effective_user", $conf, $text{'eadm_nochange'}, 8, &user_chooser_button("cache_effective_user", 0)); print &opt_input($text{'eadm_runasug'}, "cache_effective_group", $conf, $text{'eadm_nochange'}, 8, &group_chooser_button("cache_effective_group", 0)); - print "\n"; } -print "\n"; print &opt_input($text{'eadm_cmemail'}, "cache_mgr", $conf, $text{'eadm_default'}, 35); -print "\n"; -print "\n"; print &opt_input($text{'eadm_vhost'}, "visible_hostname", $conf, $text{'eadm_auto'}, 35); -print "\n"; if ($squid_version < 2) { - print "\n"; print &opt_input($text{'eadm_annto'}, "announce_to", $conf, $text{'eadm_default'}, 40); - print "\n"; - print "\n"; print &opt_input($text{'eadm_every'}, "cache_announce", $conf, $text{'eadm_never'}, 6, "hours"); - print "\n"; } else { - print "\n"; print &opt_input($text{'eadm_uniq'}, "unique_hostname", $conf, $text{'eadm_auto'}, 35); - print "\n"; if ($squid_version >= 2.4) { - print "\n"; print &opt_input($text{'eadm_haliases'}, "hostname_aliases", $conf, $text{'eadm_none'}, 35); - print "\n"; } - print "\n"; print &opt_input($text{'eadm_cah'}, "announce_host", $conf, $text{'eadm_default'}, 20); print &opt_input($text{'eadm_cap'}, "announce_port", $conf, $text{'eadm_default'}, 6); - print "\n"; - print "\n"; print &opt_input($text{'eadm_caf'}, "announce_file", $conf, $text{'eadm_none'}, 35, &file_chooser_button("announce_file")); - print "\n"; - - print "\n"; print &opt_time_input($text{'eadm_annp'}, "announce_period", $conf, $text{'eadm_default'}, 4); - print "\n"; } -print "
$text{'eadm_runasuu'} \n"; - printf " $text{'eadm_nochange'}\n", - $v ? "" : "checked"; - printf " \n", - $v ? "checked" : ""; - print $text{'eadm_user'} ,&unix_user_input("effective_u", - $v->{'values'}->[0]),"\n"; - print $text{'eadm_group'} ,&unix_group_input("effective_g", - $v->{'values'}->[1]),"\n"; - print "
\n"; -print "
\n"; +print &ui_table_end(); +print &ui_form_end([ [ undef, $text{'eadm_buttsave'} ] ]); &ui_print_footer("", $text{'eadm_return'}); diff --git a/squid/save_admin.cgi b/squid/save_admin.cgi index 6814d6daa..bde89a98c 100755 --- a/squid/save_admin.cgi +++ b/squid/save_admin.cgi @@ -2,20 +2,23 @@ # save_admin.cgi # Save admin options +use strict; +use warnings; +our (%text, %in, %access, $squid_version, %config); require './squid-lib.pl'; $access{'admopts'} || &error($text{'eadm_ecannot'}); &ReadParse(); &lock_file($config{'squid_conf'}); -$conf = &get_config(); -$whatfailed = $text{'sadmin_ftsao'}; +my $conf = &get_config(); +&error_setup($text{'sadmin_ftsao'}); -($olduser, $oldgroup) = &get_squid_user($conf); +my ($olduser, $oldgroup) = &get_squid_user($conf); if ($squid_version < 2) { if ($in{'effective_def'}) { &save_directive($conf, "cache_effective_user", [ ]); } else { - %dir = ( 'name', 'cache_effective_user', + my %dir = ( 'name', 'cache_effective_user', 'values', [ $in{'effective_u'}, $in{'effective_g'} ] ); &save_directive($conf, "cache_effective_user", [ \%dir ]); } @@ -44,17 +47,22 @@ else { &unlock_file($config{'squid_conf'}); &webmin_log("admin", undef, undef, \%in); -($user, $group) = &get_squid_user($conf); +my ($user, $group) = &get_squid_user($conf); if (($olduser ne $user || $oldgroup ne $group) && $user && $group) { # User/group has changed! Ask user if he wants to chown log/cache/pid &ui_print_header(undef, $text{'sadmin_header'}, ""); - print $text{'sadmin_msg1'},"\n"; - print "
\n"; - print "\n"; - print "
\n"; + + print &ui_confirmation_form( + "chown.cgi", + $text{'sadmin_msg1'}, + [], [ [ undef, $text{'sadmin_buttco'} ] ], + ); + &ui_print_footer("", $text{'sadmin_return'}); } -else { &redirect(""); } +else { + &redirect(""); + } sub check_email {