#!/usr/bin/perl # save_cache.cgi # Save cache and request options use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; our (%text, %in, %access, $squid_version, %config); require './squid-lib.pl'; $access{'copts'} || &error($text{'ec_ecannot'}); &ReadParse(); &lock_file($config{'squid_conf'}); my $conf = &get_config(); &error_setup($text{'scache_ftsco'}); if ($in{'cache_dir_def'}) { &save_directive($conf, "cache_dir", [ ]); } else { my @chd; for(my $i=0; defined(my $dir = $in{"cache_dir_$i"}); $i++) { if ($squid_version >= 2.4) { my $lv1 = $in{"cache_lv1_$i"}; my $lv2 = $in{"cache_lv2_$i"}; my $size = $in{"cache_size_$i"}; my $type = $in{"cache_type_$i"}; my $opts = $in{"cache_opts_$i"}; next if (!$dir && !$lv1 && !$lv2 && !$size); if ($type ne "coss") { &check_error(\&check_dir, $dir); } &check_error(\&check_dirsize, $size); &check_error(\&check_dircount, $lv1); &check_error(\&check_dircount, $lv2); push(@chd, { 'name' => 'cache_dir', 'values' => [ $type, $dir, $size, $lv1, $lv2, $opts ] }); } elsif ($squid_version >= 2.3) { my $lv1 = $in{"cache_lv1_$i"}; my $lv2 = $in{"cache_lv2_$i"}; my $size = $in{"cache_size_$i"}; my $type = $in{"cache_type_$i"}; next if (!$dir && !$lv1 && !$lv2 && !$size); &check_error(\&check_dir, $dir); &check_error(\&check_dirsize, $size); &check_error(\&check_dircount, $lv1); &check_error(\&check_dircount, $lv2); push(@chd, { 'name' => 'cache_dir', 'values' => [ $type, $dir, $size, $lv1, $lv2 ] }); } elsif ($squid_version >= 2) { my $lv1 = $in{"cache_lv1_$i"}; my $lv2 = $in{"cache_lv2_$i"}; my $size = $in{"cache_size_$i"}; next if (!$dir && !$lv1 && !$lv2 && !$size); &check_error(\&check_dir, $dir); &check_error(\&check_dirsize, $size); &check_error(\&check_dircount, $lv1); &check_error(\&check_dircount, $lv2); push(@chd, { 'name' => 'cache_dir', 'values' => [ $dir, $size, $lv1, $lv2 ] }); } else { next if (!$dir); &check_error(\&check_dir, $dir); push(@chd, { 'name' => 'cache_dir', 'values' => [ $dir ] }); } } if (!@chd) { &error($text{'scache_emsg0'}); } &save_directive($conf, "cache_dir", \@chd); } if ($squid_version < 2) { &save_opt("swap_level1_dirs", \&check_dircount, $conf); &save_opt("swap_level2_dirs", \&check_dircount, $conf); &save_opt("store_avg_object_size", \&check_objsize, $conf); } else { &save_opt_bytes("store_avg_object_size", $conf); } &save_opt("store_objects_per_bucket", \&check_bucket, $conf); if ($squid_version < 2) { &save_list("cache_stoplist", undef, $conf); &save_list("cache_stoplist_pattern", undef, $conf); } my @noch = split(/\0/, $in{'no_cache'}); my $nochname = $squid_version >= 2.6 ? 'cache' : 'no_cache'; my @nc; if (@noch) { $nc[0] = { 'name' => $nochname, 'values' => [ "deny", @noch ] }; } &save_directive($conf, $nochname, \@nc, "acl"); &save_opt_time("reference_age", $conf); if ($squid_version < 2) { &save_opt("request_size", \&check_size, $conf); &save_opt("negative_ttl", \&check_ttl, $conf); &save_opt("positive_dns_ttl", \&check_dns_ttl, $conf); &save_opt("negative_dns_ttl", \&check_dns_ttl, $conf); } else { if ($squid_version >= 2.3) { &save_opt_bytes("request_body_max_size", $conf); &save_opt_bytes("request_header_max_size", $conf); if ($squid_version < 2.5) { &save_opt_bytes("reply_body_max_size", $conf); } else { &save_opt_bytes("read_ahead_gap", $conf); } } else { &save_opt_bytes("request_size", $conf); } &save_opt_time("negative_ttl", $conf); &save_opt_time("positive_dns_ttl", $conf); &save_opt_time("negative_dns_ttl", $conf); } if ($squid_version >= 2.5) { # Parse list of max reply body sizes my @rbms; for(my $i=0; defined(my $s = $in{"reply_body_max_size_$i"}); $i++) { next if ($s eq ""); &error(&text('scache_emaxrs', $i+1)) if ($s !~ /^\d+$/); my @a = split(/\s+/, $in{"reply_body_max_acls_$i"}); push(@rbms, { 'name' => 'reply_body_max_size', 'values' => [ $s, @a ] }); } &save_directive($conf, "reply_body_max_size", \@rbms); } if ($squid_version < 2) { &save_opt("connect_timeout", \&check_timeout, $conf); &save_opt("read_timeout", \&check_timeout, $conf); &save_opt("client_lifetime", \&check_lifetime, $conf); &save_opt("shutdown_lifetime", \&check_lifetime, $conf); } else { &save_opt_time("connect_timeout", $conf); &save_opt_time("read_timeout", $conf); &save_opt_time("siteselect_timeout", $conf); &save_opt_time("request_timeout", $conf); &save_opt_time("client_lifetime", $conf); &save_opt_time("shutdown_lifetime", $conf); &save_choice("half_closed_clients", "on", $conf); &save_opt_time("pconn_timeout", $conf); } if ($squid_version >= 2) { &save_opt("wais_relay_host", \&check_host, $conf); &save_opt("wais_relay_port", \&check_port, $conf); } &flush_file_lines(); &unlock_file($config{'squid_conf'}); &webmin_log("cache", undef, undef, \%in); &redirect(""); sub check_dir { return (-d $_[0]) ? undef : &text('scache_emsg1',$_[0]); } sub check_size { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg2',$_[0]); } sub check_ttl { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg3',$_[0]); } sub check_dns_ttl { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg4',$_[0]); } sub check_timeout { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg5',$_[0]); } sub check_lifetime { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg6',$_[0]); } sub check_dircount { return $_[0] !~ /^\d+$/ ? &text('scache_emsg7',$_[0]) : $_[0] < 1 ? $text{'scache_emsg8'} : $_[0] > 256 ? $text{'scache_emsg9'} : undef; } sub check_objsize { return $_[0] =~ /^\d+/ ? undef : &text('scache_emsg10',$_[0]); } sub check_bucket { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg11',$_[0]); } sub check_dirsize { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg12',$_[0]); } sub check_host { return &to_ipaddress($_[0]) || &to_ip6address($_[0]) ? undef : &text('scache_emsg13',$_[0]); } sub check_port { return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg14',$_[0]); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 2.59 KB | 0644 |
|
acl.cgi | File | 10.91 KB | 0755 |
|
acl_save.cgi | File | 8.13 KB | 0755 |
|
acl_security.pl | File | 1.72 KB | 0755 |
|
always.cgi | File | 1.76 KB | 0755 |
|
always_save.cgi | File | 1.17 KB | 0755 |
|
backup_config.pl | File | 732 B | 0755 |
|
cachemgr.cgi | File | 1.03 KB | 0755 |
|
calamaris.cgi | File | 3.09 KB | 0755 |
|
cgi_args.pl | File | 2.23 KB | 0755 |
|
chown.cgi | File | 1.42 KB | 0755 |
|
clear.cgi | File | 2.87 KB | 0755 |
|
config-AlmaLinux-7.0-ALL | File | 439 B | 0644 |
|
config-Amazon-Linux-2-ALL | File | 398 B | 0644 |
|
config-CentOS-Linux-7.0-ALL | File | 398 B | 0644 |
|
config-CentOS-Stream-Linux-8.0-ALL | File | 439 B | 0644 |
|
config-CloudLinux-8.0-ALL | File | 439 B | 0644 |
|
config-Oracle-Linux-8.0-ALL | File | 439 B | 0644 |
|
config-Redhat-Enterprise-Linux-7.0-ALL | File | 439 B | 0644 |
|
config-Rocky-Linux-7.0-ALL | File | 439 B | 0644 |
|
config-Scientific-Linux-7.0-ALL | File | 398 B | 0644 |
|
config-Ubuntu-Linux-16.0-ALL | File | 447 B | 0644 |
|
config-aix | File | 365 B | 0644 |
|
config-cobalt-linux | File | 364 B | 0644 |
|
config-coherent-linux | File | 422 B | 0644 |
|
config-corel-linux | File | 338 B | 0644 |
|
config-debian-linux | File | 338 B | 0644 |
|
config-debian-linux-10.0-ALL | File | 447 B | 0644 |
|
config-debian-linux-3.0-4.9 | File | 344 B | 0644 |
|
config-debian-linux-5.0-5.9 | File | 454 B | 0644 |
|
config-debian-linux-6.0-6.9 | File | 442 B | 0644 |
|
config-debian-linux-7.0-9.0 | File | 449 B | 0644 |
|
config-freebsd | File | 395 B | 0644 |
|
config-freebsd-8-ALL | File | 484 B | 0644 |
|
config-generic-linux | File | 405 B | 0644 |
|
config-gentoo-linux | File | 412 B | 0644 |
|
config-hpux | File | 405 B | 0644 |
|
config-irix | File | 405 B | 0644 |
|
config-lfs-linux | File | 374 B | 0644 |
|
config-macos | File | 405 B | 0644 |
|
config-mandrake-linux | File | 409 B | 0644 |
|
config-mandrake-linux-8.0-ALL | File | 406 B | 0644 |
|
config-msc-linux | File | 422 B | 0644 |
|
config-netbsd | File | 360 B | 0644 |
|
config-open-linux | File | 429 B | 0644 |
|
config-open-linux-3.1e | File | 431 B | 0644 |
|
config-openSUSE-Linux-15.0-ALL | File | 447 B | 0644 |
|
config-openbsd | File | 395 B | 0644 |
|
config-openmamba-linux | File | 347 B | 0644 |
|
config-openserver | File | 405 B | 0644 |
|
config-osf1 | File | 405 B | 0644 |
|
config-pardus-linux | File | 416 B | 0644 |
|
config-redhat-linux | File | 341 B | 0644 |
|
config-redhat-linux-24.0-ALL | File | 439 B | 0644 |
|
config-redhat-linux-6.0 | File | 427 B | 0644 |
|
config-redhat-linux-6.1-23.0 | File | 420 B | 0644 |
|
config-slackware-linux | File | 405 B | 0644 |
|
config-sol-linux | File | 401 B | 0644 |
|
config-solaris | File | 405 B | 0644 |
|
config-solaris-11-ALL | File | 461 B | 0644 |
|
config-suse-linux | File | 332 B | 0644 |
|
config-suse-linux-8.0 | File | 359 B | 0644 |
|
config-suse-linux-8.2-ALL | File | 456 B | 0644 |
|
config-trustix-linux | File | 412 B | 0644 |
|
config-turbo-linux | File | 341 B | 0644 |
|
config-united-linux | File | 435 B | 0644 |
|
config-unixware | File | 405 B | 0644 |
|
config.info | File | 1.16 KB | 0644 |
|
config.info.ca | File | 1.42 KB | 0644 |
|
config.info.cs | File | 924 B | 0644 |
|
config.info.de | File | 1.4 KB | 0644 |
|
config.info.es | File | 1.36 KB | 0644 |
|
config.info.fa | File | 1.57 KB | 0644 |
|
config.info.fr | File | 538 B | 0644 |
|
config.info.it | File | 570 B | 0644 |
|
config.info.ja | File | 1.34 KB | 0644 |
|
config.info.nl | File | 1.35 KB | 0644 |
|
config.info.no | File | 1.22 KB | 0644 |
|
config.info.pl | File | 737 B | 0644 |
|
config.info.pt_BR | File | 1.44 KB | 0644 |
|
config.info.ru | File | 1.39 KB | 0644 |
|
config.info.sv | File | 569 B | 0644 |
|
config.info.tr | File | 369 B | 0644 |
|
config.info.uk | File | 1.41 KB | 0644 |
|
config.info.zh | File | 450 B | 0644 |
|
config.info.zh_TW | File | 355 B | 0644 |
|
defaultacl | File | 228 B | 0644 |
|
delete_http_accesses.cgi | File | 848 B | 0755 |
|
delete_http_reply_accesses.cgi | File | 913 B | 0755 |
|
delete_https.cgi | File | 838 B | 0755 |
|
delete_icp_accesses.cgi | File | 836 B | 0755 |
|
delete_icps.cgi | File | 1.14 KB | 0755 |
|
delete_pools.cgi | File | 1.42 KB | 0755 |
|
delete_refreshes.cgi | File | 840 B | 0755 |
|
edit_acl.cgi | File | 6.99 KB | 0755 |
|
edit_admin.cgi | File | 2.44 KB | 0755 |
|
edit_authparam.cgi | File | 4.62 KB | 0755 |
|
edit_cache.cgi | File | 7.39 KB | 0755 |
|
edit_cache_host.cgi | File | 4.76 KB | 0755 |
|
edit_cachemgr.cgi | File | 1.82 KB | 0755 |
|
edit_delay.cgi | File | 2.86 KB | 0755 |
|
edit_ext.cgi | File | 1.53 KB | 0755 |
|
edit_headeracc.cgi | File | 1.96 KB | 0755 |
|
edit_icp.cgi | File | 5.28 KB | 0755 |
|
edit_iptables.cgi | File | 1.91 KB | 0755 |
|
edit_logs.cgi | File | 4.74 KB | 0755 |
|
edit_manual.cgi | File | 919 B | 0755 |
|
edit_mem.cgi | File | 2.48 KB | 0755 |
|
edit_misc.cgi | File | 3.92 KB | 0755 |
|
edit_nauth.cgi | File | 1.26 KB | 0755 |
|
edit_nuser.cgi | File | 1.46 KB | 0755 |
|
edit_pool.cgi | File | 4.18 KB | 0755 |
|
edit_ports.cgi | File | 3.28 KB | 0755 |
|
edit_progs.cgi | File | 3.06 KB | 0755 |
|
edit_refresh.cgi | File | 1.91 KB | 0755 |
|
http_access.cgi | File | 2 KB | 0755 |
|
http_access_save.cgi | File | 1.37 KB | 0755 |
|
http_reply_access.cgi | File | 1.81 KB | 0755 |
|
http_reply_access_save.cgi | File | 1.25 KB | 0755 |
|
icp_access.cgi | File | 1.98 KB | 0755 |
|
icp_access_save.cgi | File | 1.35 KB | 0755 |
|
index.cgi | File | 5.54 KB | 0755 |
|
init_cache.cgi | File | 3.03 KB | 0755 |
|
install_check.pl | File | 615 B | 0755 |
|
list_headeracc.cgi | File | 1.71 KB | 0755 |
|
list_refresh.cgi | File | 1.63 KB | 0755 |
|
log_parser.pl | File | 1.27 KB | 0755 |
|
module.info | File | 496 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 122 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 191 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 231 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 249 B | 0644 |
|
module.info.ca | File | 112 B | 0644 |
|
module.info.ca.auto | File | 16 B | 0644 |
|
module.info.cs | File | 27 B | 0644 |
|
module.info.cs.auto | File | 105 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 134 B | 0644 |
|
module.info.de | File | 110 B | 0644 |
|
module.info.de.auto | File | 20 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 230 B | 0644 |
|
module.info.es | File | 31 B | 0644 |
|
module.info.es.auto | File | 124 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 138 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 231 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 159 B | 0644 |
|
module.info.fr | File | 28 B | 0644 |
|
module.info.fr.auto | File | 127 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 194 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 143 B | 0644 |
|
module.info.hu | File | 0 B | 0644 |
|
module.info.hu.auto | File | 170 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 142 B | 0644 |
|
module.info.ja | File | 37 B | 0644 |
|
module.info.ja.auto | File | 147 B | 0644 |
|
module.info.ko | File | 31 B | 0644 |
|
module.info.ko.auto | File | 121 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 151 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 159 B | 0644 |
|
module.info.ms | File | 116 B | 0644 |
|
module.info.ms.auto | File | 15 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 144 B | 0644 |
|
module.info.nl | File | 27 B | 0644 |
|
module.info.nl.auto | File | 98 B | 0644 |
|
module.info.no | File | 0 B | 0644 |
|
module.info.no.auto | File | 131 B | 0644 |
|
module.info.pl | File | 27 B | 0644 |
|
module.info.pl.auto | File | 115 B | 0644 |
|
module.info.pt | File | 29 B | 0644 |
|
module.info.pt.auto | File | 103 B | 0644 |
|
module.info.pt_BR | File | 32 B | 0644 |
|
module.info.pt_BR.auto | File | 109 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 147 B | 0644 |
|
module.info.ru | File | 40 B | 0644 |
|
module.info.ru.auto | File | 171 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 181 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 146 B | 0644 |
|
module.info.sv | File | 26 B | 0644 |
|
module.info.sv.auto | File | 111 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 231 B | 0644 |
|
module.info.tr | File | 29 B | 0644 |
|
module.info.tr.auto | File | 132 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 243 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 205 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 147 B | 0644 |
|
module.info.zh | File | 30 B | 0644 |
|
module.info.zh.auto | File | 84 B | 0644 |
|
module.info.zh_TW | File | 33 B | 0644 |
|
module.info.zh_TW.auto | File | 90 B | 0644 |
|
move_always.cgi | File | 762 B | 0755 |
|
move_headeracc.cgi | File | 777 B | 0755 |
|
move_http.cgi | File | 748 B | 0755 |
|
move_http_reply.cgi | File | 797 B | 0755 |
|
move_icp.cgi | File | 736 B | 0755 |
|
move_never.cgi | File | 751 B | 0755 |
|
move_pool.cgi | File | 831 B | 0755 |
|
move_refresh.cgi | File | 822 B | 0755 |
|
nat | File | 34.84 KB | 0644 |
|
never.cgi | File | 1.75 KB | 0755 |
|
never_save.cgi | File | 1.15 KB | 0755 |
|
parser-lib.pl | File | 6.39 KB | 0755 |
|
pool_access.cgi | File | 1.82 KB | 0755 |
|
pool_access_save.cgi | File | 1.17 KB | 0755 |
|
purge.cgi | File | 1.11 KB | 0755 |
|
restart.cgi | File | 381 B | 0755 |
|
save_admin.cgi | File | 2.23 KB | 0755 |
|
save_authparam.cgi | File | 5.29 KB | 0755 |
|
save_cache.cgi | File | 6.03 KB | 0755 |
|
save_cache_host.cgi | File | 3.8 KB | 0755 |
|
save_cachemgr.cgi | File | 1.15 KB | 0755 |
|
save_delay.cgi | File | 656 B | 0755 |
|
save_ext.cgi | File | 2.32 KB | 0755 |
|
save_headeracc.cgi | File | 1.26 KB | 0755 |
|
save_icp.cgi | File | 1.18 KB | 0755 |
|
save_iptables.cgi | File | 2.9 KB | 0755 |
|
save_logs.cgi | File | 3.14 KB | 0755 |
|
save_manual.cgi | File | 493 B | 0755 |
|
save_mem.cgi | File | 1.72 KB | 0755 |
|
save_misc.cgi | File | 2.65 KB | 0755 |
|
save_nuser.cgi | File | 1.89 KB | 0755 |
|
save_pool.cgi | File | 3.19 KB | 0755 |
|
save_ports.cgi | File | 2.59 KB | 0755 |
|
save_progs.cgi | File | 2.55 KB | 0755 |
|
save_refresh.cgi | File | 1.46 KB | 0755 |
|
squid-auth.pl | File | 446 B | 0755 |
|
squid-lib.pl | File | 16.16 KB | 0755 |
|
start.cgi | File | 1.16 KB | 0755 |
|
stop.cgi | File | 881 B | 0755 |
|
syslog_logs.pl | File | 715 B | 0755 |
|
useradmin_update.pl | File | 2.8 KB | 0755 |
|