Files
webmin/squid/save_mem.cgi
2007-04-12 20:24:50 +00:00

66 lines
1.6 KiB
Perl
Executable File

#!/usr/local/bin/perl
# save_mem.cgi
# Save memory usage options
require './squid-lib.pl';
$access{'musage'} || &error($text{'emem_ecannot'});
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'smem_ftsmo'};
if ($squid_version < 2) {
&save_opt("cache_mem", \&check_size, $conf);
&save_opt("cache_swap", \&check_size, $conf);
}
else {
&save_opt_bytes("cache_mem", $conf);
&save_opt("fqdncache_size", \&check_size, $conf);
}
if ($squid_version < 2.5) {
&save_opt("cache_mem_high", \&check_high, $conf);
&save_opt("cache_mem_low", \&check_low, $conf);
}
&save_opt("cache_swap_high", \&check_high, $conf);
&save_opt("cache_swap_low", \&check_low, $conf);
if ($squid_version < 2) {
&save_opt("maximum_object_size", \&check_obj_size, $conf);
}
else {
&save_opt_bytes("maximum_object_size", $conf);
}
&save_opt("ipcache_size", \&check_size, $conf);
&save_opt("ipcache_high", \&check_high, $conf);
&save_opt("ipcache_low", \&check_low, $conf);
if ($squid_version >= 2.4) {
&save_choice("cache_replacement_policy", '', $conf);
&save_choice("memory_replacement_policy", '', $conf);
}
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("mem", undef, undef, \%in);
&redirect("");
sub check_size
{
return $_[0] =~ /^\d+$/ ? undef : &text('smem_emsg1',$_[0]);
}
sub check_high
{
return $_[0] =~ /^\d+$/ && $_[0] > 0 && $_[0] <= 100
? undef : &text('smem_emsg2',$_[0]);
}
sub check_low
{
return $_[0] =~ /^\d+$/ && $_[0] > 0 && $_[0] <= 100
? undef : &text('smem_emsg3',$_[0]);
}
sub check_obj_size
{
return $_[0] =~ /^\d+$/ ? undef : &text('smem_emsg4',$_[0]);
}