#!/usr/local/bin/perl # edit_cache.cgi # A form for editing cache options require './squid-lib.pl'; $access{'copts'} || &error($text{'ec_ecannot'}); &ui_print_header(undef, $text{'ec_header'}, "", "edit_cache", 0, 0, 0, &restart_button()); $conf = &get_config(); print "
\n"; print "\n"; print "\n"; print "
$text{'ec_cro'}
\n"; print "\n"; @dirs = &find_config("cache_dir", $conf); print "\n"; print "\n"; if ($squid_version < 2) { print "\n"; print &opt_input($text{'ec_1dirs1'}, "swap_level1_dirs", $conf, $text{'ec_default'}, 6); print &opt_input($text{'ec_2dirs2'}, "swap_level2_dirs", $conf, $text{'ec_default'}, 6); print "\n"; } print "\n"; if ($squid_version < 2) { print &opt_input($text{'ec_aos'}, "store_avg_object_size", $conf, $text{'ec_default'}, 6, $text{'ec_kb'}); } else { print &opt_bytes_input($text{'ec_aos'}, "store_avg_object_size", $conf, $text{'ec_default'}, 6); } print &opt_input($text{'ec_opb'}, "store_objects_per_bucket", $conf, $text{'ec_default'}, 6); print "\n"; if ($squid_version < 2) { print "\n"; print &list_input($text{'ec_ncuc'}, "cache_stoplist", $conf, 1, $text{'ec_default'}); print "\n"; print "\n"; print &list_input($text{'ec_ncum'}, "cache_stoplist_pattern", $conf, 1, $text{'ec_default'}); print "\n"; } # ACLs not to cache print "\n"; print &opt_time_input($text{'ec_mct'}, "reference_age", $conf, $text{'default'}, 6); print "\n"; print "\n"; if ($squid_version >= 2) { if ($squid_version >= 2.3) { print &opt_bytes_input($text{'ec_mrbs'}, "request_body_max_size", $conf, $text{'default'}, 6); print &opt_bytes_input($text{'ec_mrhs'}, "request_header_max_size", $conf, $text{'default'}, 6); print "\n"; print "\n"; if ($squid_version < 2.5) { print &opt_bytes_input($text{'ec_mrbs1'}, "reply_body_max_size", $conf, $text{'default'}, 6); } else { print &opt_bytes_input($text{'ec_gap'}, "read_ahead_gap", $conf, $text{'default'}, 6); } } else { print &opt_bytes_input($text{'ec_mrs'}, "request_size", $conf, $text{'default'}, 6); } print &opt_time_input($text{'ec_frct'}, "negative_ttl", $conf, $text{'default'}, 4); } else { print &opt_input($text{'ec_mrs'}, "request_size", $conf, $text{'default'}, 8, $text{'ec_kb'}); print &opt_input($text{'ec_frct'}, "negative_ttl", $conf, $text{'default'}, 4, $text{'ec_mins'}); } print "\n"; if ($squid_version >= 2.5) { # Max reply size can be limited by ACL print "\n"; print "\n"; print "\n"; } print "\n"; if ($squid_version < 2) { print &opt_input($text{'ec_dlct'}, "positive_dns_ttl", $conf, $text{'default'}, 4, $text{'ec_mins'}); print &opt_input($text{'ec_fdct'}, "negative_dns_ttl", $conf, $text{'default'}, 4, $text{'ec_mins'}); } else { print &opt_time_input($text{'ec_dlct'}, "positive_dns_ttl", $conf, $text{'default'}, 4); print &opt_time_input($text{'ec_fdct'}, "negative_dns_ttl", $conf, $text{'default'}, 4); } print "\n"; if ($squid_version < 2) { print "\n"; print &opt_input($text{'ec_ct'}, "connect_timeout", $conf, $text{'default'}, 4, $text{'ec_secs'}); print &opt_input($text{'ec_rt'}, "read_timeout", $conf, $text{'default'}, 4, $text{'ec_secs'}); print "\n"; print "\n"; print &opt_input($text{'ec_mcct'}, "client_lifetime", $conf, $text{'default'}, 4, $text{'ec_mins'}); print &opt_input($text{'ec_mst'}, "shutdown_lifetime", $conf, $text{'default'}, 4, $text{'ec_mins'}); print "\n"; } else { print "\n"; print &opt_time_input($text{'ec_ct'}, "connect_timeout", $conf, $text{'default'}, 4); print &opt_time_input($text{'ec_rt'}, "read_timeout", $conf, $text{'default'}, 4); print "\n"; print "\n"; print &opt_time_input($text{'ec_sst'}, "siteselect_timeout", $conf, $text{'default'}, 4); print &opt_time_input($text{'ec_crt'}, "request_timeout", $conf, $text{'default'}, 4); print "\n"; print "\n"; print &opt_time_input($text{'ec_mcct'}, "client_lifetime", $conf, $text{'default'}, 4); print &opt_time_input($text{'ec_mst'}, "shutdown_lifetime", $conf, $text{'default'}, 4); print "\n"; print "\n"; print &choice_input($text{'ec_hcc'}, "half_closed_clients", $conf, "on", $text{'on'},"on", $text{'off'},"off"); print &opt_time_input($text{'ec_pt'}, "pconn_timeout", $conf, $text{'default'}, 4); print "\n"; } if ($squid_version < 2) { print "\n"; print "\n"; } else { print "\n"; print &opt_input($text{'ec_wrh'}, "wais_relay_host", $conf, $text{'none'}, 20); print &opt_input($text{'ec_wrp'}, "wais_relay_port", $conf, $text{'default'}, 6); print "\n"; } print "
$text{'ec_cdirs'} \n"; printf " $text{'ec_default'} ($config{'cache_dir'})\n", @dirs ? "" : "checked"; printf " $text{'ec_listed'}
\n", @dirs ? "checked" : ""; print "\n"; if ($squid_version >= 2) { print "\n"; if ($squid_version >= 2.3) { print "\n"; } print "\n"; print "\n"; print "\n"; if ($squid_version >= 2.4) { print "\n"; } print "\n"; } for($i=0; $i<=@dirs; $i++) { @dv = $i<@dirs ? @{$dirs[$i]->{'values'}} : (); print "\n"; if ($squid_version >= 2.4) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } elsif ($squid_version >= 2.3) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } elsif ($squid_version >= 2) { print "\n"; print "\n"; print "\n"; print "\n"; } else { print "\n"; } print "\n"; } print "
$text{'ec_directory'}$text{'ec_type'}$text{'ec_size'}$text{'ec_1dirs'}$text{'ec_2dirs'}$text{'ec_opts'}

$text{'ec_ncua'} \n"; print "\n"; @acls = grep { !$acldone{$_->{'values'}->[0]}++ } &find_config("acl", $conf); unshift(@acls, { 'values' => [ 'all' ] }) if ($squid_version >= 3); if ($squid_version >= 2.6) { # 2.6+ plus uses "cache deny" @v = &find_config("cache", $conf); } else { # Older versions use cache @v = &find_config("no_cache", $conf); } foreach $v (@v) { foreach $ncv (@{$v->{'values'}}) { $noca{$ncv}++; } } $i = 0; foreach $acl (@acls) { print "\n" if ($i%3 == 0); $aclv = $acl->{'values'}->[0]; printf "\n", $noca{$aclv} ? "checked" : ""; print "\n" if ($i++%3 == 2); } print "
$aclv
$text{'ec_maxreplies'}\n"; print " ", "\n"; @maxrs = &find_config("reply_body_max_size", $conf); $i = 0; foreach $m (@maxrs, { }) { local ($s, @a) = @{$m->{'values'}}; print "\n"; printf "\n", $i, $s; printf "\n", $i, join(" ", @a); print "\n"; $i++; } print "
$text{'ec_maxrn'}$text{'ec_maxracls'}
$text{'ec_wr'} \n"; $v = &find_config("wais_relay", $conf); printf " $text{'none'}\n", $v ? "" : "checked"; printf " $text{'ec_host'}\n", $v ? "checked" : ""; @wrv = $v ? @{$v->{'values'}} : (); print " $text{'ec_port'}\n"; print "
\n"; print "
\n"; &ui_print_footer("", $text{'ec_return'});