Server IP : 195.201.23.43 / Your IP : 18.218.96.239 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/squid/ |
Upload File : |
#!/usr/bin/perl # edit_cache.cgi # A form for editing cache 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'}); &ui_print_header(undef, $text{'ec_header'}, "", "edit_cache", 0, 0, 0, &restart_button()); my $conf = &get_config(); print &ui_form_start("save_cache.cgi", "post"); print &ui_table_start($text{'ec_cro'}, "width=100%", 4); my @dirs = &find_config("cache_dir", $conf); my $dtable = &ui_radio("cache_dir_def", @dirs ? 0 : 1, [ [ 1, "$text{'ec_default'} ($config{'cache_dir'})" ], [ 0, $text{'ec_listed'} ] ])."<br>\n"; my @cols = ( $text{'ec_directory'} ); if ($squid_version >= 2.3) { push(@cols, $text{'ec_type'}); } push(@cols, $text{'ec_size'}, $text{'ec_1dirs'}, $text{'ec_2dirs'}); if ($squid_version >= 2.4) { push(@cols, $text{'ec_opts'}); } $dtable .= &ui_columns_start(\@cols, 100); for(my $i=0; $i<=@dirs; $i++) { my @dv = $i<@dirs ? @{$dirs[$i]->{'values'}} : (); my @row; if ($squid_version >= 2.4) { push(@row, &ui_textbox("cache_dir_$i", $dv[1], 30)); push(@row, &ui_select("cache_type_$i", $dv[0], [ [ 'ufs', $text{'ec_u'} ], [ 'diskd', $text{'ec_diskd'} ], [ 'aufs', $text{'ec_ua'} ], [ 'coss', $text{'ec_coss'} ] ])); push(@row, &ui_textbox("cache_size_$i", $dv[2], 8)); push(@row, &ui_textbox("cache_lv1_$i", $dv[3], 8)); push(@row, &ui_textbox("cache_lv2_$i", $dv[4], 8)); push(@row, &ui_textbox("cache_opts_$i", join(" ",@dv[5..$#dv]), 20)); } elsif ($squid_version >= 2.3) { push(@row, &ui_textbox("cache_dir_$i", $dv[1], 30)); push(@row, &ui_select("cache_type_$i", $dv[0], [ [ 'ufs', $text{'ec_u'} ], [ 'asyncufs', $text{'ec_ua'} ] ])); push(@row, &ui_textbox("cache_size_$i", $dv[2], 8)); push(@row, &ui_textbox("cache_lv1_$i", $dv[3], 8)); push(@row, &ui_textbox("cache_lv2_$i", $dv[4], 8)); } elsif ($squid_version >= 2) { push(@row, &ui_textbox("cache_dir_$i", $dv[0], 40)); push(@row, &ui_textbox("cache_size_$i", $dv[1], 8)); push(@row, &ui_textbox("cache_lv1_$i", $dv[2], 8)); push(@row, &ui_textbox("cache_lv2_$i", $dv[3], 8)); } else { push(@row, &ui_textbox("cache_dir_$i", $dv[0], 50)); } $dtable .= &ui_columns_row(\@row); } $dtable .= &ui_columns_end(); print &ui_table_row($text{'ec_cdirs'}, $dtable, 3); print &ui_table_hr(); if ($squid_version < 2) { 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); } 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); if ($squid_version < 2) { print &list_input($text{'ec_ncuc'}, "cache_stoplist", $conf, 1, $text{'ec_default'}); print &list_input($text{'ec_ncum'}, "cache_stoplist_pattern", $conf, 1, $text{'ec_default'}); } # ACLs not to cache my %acldone; my @acls = grep { !$acldone{$_->{'values'}->[0]}++ } &find_config("acl", $conf); unshift(@acls, { 'values' => [ 'all' ] }) if ($squid_version >= 3); my @v; 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); } my %noca; foreach my $v (@v) { foreach my $ncv (@{$v->{'values'}}) { $noca{$ncv}++; } } my @grid; foreach my $acl (@acls) { my $aclv = $acl->{'values'}->[0]; push(@grid, &ui_checkbox("no_cache", $aclv, $aclv, $noca{$aclv})); } print &ui_table_row($text{'ec_ncua'}, &ui_grid_table(\@grid, 4)); print &opt_time_input($text{'ec_mct'}, "reference_age", $conf, $text{'default'}, 6); 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); 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 "</tr>\n"; if ($squid_version >= 2.5) { # Max reply size can be limited by ACL my $rtable = &ui_columns_start([ $text{'ec_maxrn'}, $text{'ec_maxracls'} ]); my @maxrs = &find_config("reply_body_max_size", $conf); my $i = 0; foreach my $m (@maxrs, { 'values' => [] }) { my ($s, @a) = @{$m->{'values'}}; $rtable .= &ui_columns_row([ &ui_textbox("reply_body_max_size_$i", $s, 8), &ui_textbox("reply_body_max_acls_$i", join(" ", @a),50), ]); $i++; } $rtable .= &ui_columns_end(); print &ui_table_row($text{'ec_maxreplies'}, $rtable, 3); } 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); } if ($squid_version < 2) { 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 &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'}); } else { 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 &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 "</tr>\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 &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); } if ($squid_version >= 2) { 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 &ui_table_end(); print &ui_form_end([ [ undef, $text{'buttsave'} ] ]); &ui_print_footer("", $text{'ec_return'});Private