# squid-lib.pl # Functions for configuring squid.conf BEGIN { push(@INC, ".."); }; use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; use WebminCore; &init_config(); do 'parser-lib.pl'; our ($module_root_directory, %text, %config, %in, $module_config_directory); our %access = &get_module_acl(); our $auth_program = "$module_config_directory/squid-auth.pl"; our $auth_database = "$module_config_directory/users"; our @caseless_acl_types = ( "url_regex", "urlpath_regex", "proxy_auth_regex", "srcdom_regex", "dstdom_regex", "ident_regex" ); our @nodns_acl_types = ( "dst", "dstdomain", "dstdom_regex" ); # Get the squid version our $squid_version = &read_file_contents("$module_config_directory/version") || 0; $squid_version =~ s/\r|\n//g; # choice_input(text, name, &config, default, [display, option]+) # Display a number of radio buttons for selecting some option sub choice_input { my ($label, $name, $conf, $def, @opts) = @_; my $v = &find_config($_[1], $_[2]); my $vv = $v ? $v->{'value'} : $_[3]; my @opts2; for(my $i=0; $i<@opts; $i+=2) { push(@opts2, [ $opts[$i+1], $opts[$i] ]); } return &ui_table_row($label, &ui_radio($name, $vv, \@opts2)); } # select_input(text, name, &config, default, [display, option]+) # Like choice_input, but uses a drop-down select field sub select_input { my ($label, $name, $conf, $def, @opts) = @_; my $v = &find_config($_[1], $_[2]); my $vv = $v ? $v->{'value'} : $_[3]; my @opts2; for(my $i=0; $i<@opts; $i+=2) { push(@opts2, [ $opts[$i+1], $opts[$1] ]); } return &ui_table_row($label, &ui_select($name, $vv, \@opts2)); } # save_choice(name, default, &config) # Save a selection from choice_input() sub save_choice { my ($name, $def, $conf) = @_; if ($in{$name} eq $def) { &save_directive($conf, $name, [ ]); } else { &save_directive($conf, $name, [{ 'name' => $name, 'values' => [ $in{$name} ] }]); } } # list_input(text, name, &config, type, [default]) # Display a list of values sub list_input { my ($label, $name, $conf, $type, $def) = @_; my @av; foreach my $v (&find_config($name, $conf)) { push(@av, @{$v->{'values'}}); } if ($type == 0) { # text area my $opt = ""; if ($def) { $opt = &ui_radio($name."_def", @av ? 0 : 1, [ [ 1, $def ], [ 0, $text{'ec_listed'} ] ])."<br>\n"; } return &ui_table_row($label, $opt.&ui_textarea($name, join("\n", @av), 3, 20)); } else { # one long text field my $field = $def ? &ui_opt_textbox($name, join(' ',@av), 50, $def) : &ui_textbox($name, join(' ',@av), 50); return &ui_table_row($label, $field, 3); } } # save_list(name, &checkfunc, &config) sub save_list { my ($name, $func, $conf) = @_; my @vals; if (!$in{$name."_def"}) { @vals = split(/\s+/, $in{$_[0]}); if ($func) { foreach my $v (@vals) { &check_error($func, $v); } } } if (@vals) { &save_directive($conf, $name, [{ 'name' => $name, values => \@vals }]); } else { &save_directive($conf, $name, [ ]); } } # check_error(&function, value) sub check_error { my ($func, $value) = @_; return if (!$func); my $err = &$func($value); if ($err) { &error($err); } } # address_input(text, name, &config, type) # Display a text area for entering 0 or more addresses sub address_input { my ($label, $name, $conf, $type) = @_; my @av; foreach my $v (&find_config($name, $conf)) { push(@av, @{$v->{'values'}}); } if ($type == 0) { # text area return &ui_table_row($label, &ui_textarea($name, join("\n", @av), 3, 30)); } else { # one long text field return &ui_table_row($label, &ui_textbox($name, join(' ',@av), 50), 3); } } # save_address(name, config) sub save_address { my ($name, $conf) = @_; my @vals; foreach my $addr (split(/\s+/, $in{$name})) { &check_ipaddress($addr) || &error(&text('lib_emsg1', $addr)); push(@vals, $addr); } if (@vals) { &save_directive($conf, $name, [{ 'name' => $name, values => \@vals }]); } else { &save_directive($conf, $name, [ ]); } } # opt_input(text, name, &config, default, size, units) # Display an optional field for entering something sub opt_input { my ($label, $name, $conf, $def, $size, $units) = @_; my $v = &find_config($_[1], $_[2]); return &ui_table_row($label, &ui_opt_textbox($name, $v ? $v->{'value'} : undef, $size, $def)." ".$units, $size > 30 ? 3 : 1); } # save_opt(name, &function, &config) # Save an input from opt_input() sub save_opt { my ($name, $func, $conf) = @_; if ($in{$name."_def"}) { &save_directive($conf, $name, [ ]); } else { &check_error($func, $in{$name}); my $dir = { 'name' => $name, 'values' => [ $in{$name} ] }; &save_directive($conf, $name, [ $dir ]); } } # opt_time_input(text, name, &config, default, size) sub opt_time_input { my ($label, $name, $conf, $def, $size) = @_; my $v = &find_config($name, $conf); return &ui_table_row($label, &ui_radio($name."_def", $v ? 0 : 1, [ [ 1, $def ], [ 0, &time_fields($name, $size, $v ? @{$v->{'values'}} : ( )) ] ])); } # time_fields(name, size, time, units) sub time_fields { my ($name, $size, $time, $units) = @_; my @ts = ( [ "second" => $text{"lib_seconds"} ], [ "minute" => $text{"lib_minutes"} ], [ "hour" => $text{"lib_hours"} ], [ "day" => $text{"lib_days"} ], [ "week" => $text{"lib_weeks"} ], [ "fortnight" => $text{"lib_fortnights"} ], [ "month" => $text{"lib_months"} ], [ "year" => $text{"lib_years"} ], [ "decade" => $text{"lib_decades"} ] ); $units =~ s/s$//; return &ui_textbox($name, $time, $size)." ". &ui_select($name."_u", $units, \@ts); } # save_opt_time(name, &config) sub save_opt_time { my ($name, $conf) = @_; my %ts = ( "second" => $text{"lib_seconds"}, "minute" => $text{"lib_minutes"}, "hour" => $text{"lib_hours"}, "day" => $text{"lib_days"}, "week" => $text{"lib_weeks"}, "fortnight" => $text{"lib_fortnights"}, "month" => $text{"lib_months"}, "year" => $text{"lib_years"}, "decade" => $text{"lib_decades"} ); if ($in{$name."_def"}) { &save_directive($conf, $name, [ ]); } elsif ($in{$name} !~ /^[0-9\.]+$/) { &error(&text('lib_emsg2', $in{$name}, $ts{$in{$name."_u"}}) ); } else { my $dir = { 'name' => $name, 'values' => [ $in{$name}, $in{$name."_u"} ] }; &save_directive($conf, $name, [ $dir ]); } } # opt_bytes_input(text, name, &config, default, size) sub opt_bytes_input { my ($label, $name, $conf, $def, $size) = @_; my @ss = ( [ "KB", $text{'lib_kb'} ], [ "MB", $text{'lib_mb'} ], [ "GB", $text{'lib_gb'} ] ); my $v = &find_config($name, $conf); my $input = &ui_textbox($name, $v ? $v->{'values'}->[0] : "", $size)." ". &ui_select($name."_u", $v ? $v->{'values'}->[1] : "", \@ss); return &ui_table_row($label, &ui_radio($name."_def", $v ? 0 : 1, [ [ 1, $def ], [ 0, $input ] ])); } # save_opt_bytes(name, &config) sub save_opt_bytes { my ($name, $conf) = @_; my %ss = ( "KB" => $text{'lib_kb'}, "MB" => $text{'lib_mb'}, "GB" => $text{'lib_gb'} ); if ($in{$name."_def"}) { &save_directive($conf, $name, [ ]); } elsif ($in{$name} !~ /^[0-9\.]+$/) { &error(&text('lib_emsg3', $in{$name}, $ss{$in{$name."_u"}}) ); } else { my $dir = { 'name' => $name, 'values' => [ $in{$name}, $in{$name."_u"} ] }; &save_directive($conf, $name, [ $dir ]); } } our %acl_types = ("src", $text{'lib_aclca'}, "dst", $text{'lib_aclwsa'}, "srcdomain", $text{'lib_aclch'}, "dstdomain", $text{'lib_aclwsh'}, "time", $text{'lib_acldat'}, "url_regex", $text{'lib_aclur'}, "urlpath_regex", $text{'lib_aclupr'}, "port", $text{'lib_aclup'}, "proto", $text{'lib_aclup1'}, "method", $text{'lib_aclrm'}, "browser", $text{'lib_aclbr'}, "user", $text{'lib_aclpl'}, "arp", $text{'lib_aclarp'} ); if ($squid_version >= 2.0) { $acl_types{'src_as'} = $text{'lib_aclsan'}; $acl_types{'dst_as'} = $text{'lib_acldan'}; $acl_types{'proxy_auth'} = $text{'lib_aclea'}; $acl_types{'srcdom_regex'} = $text{'lib_aclcr'}; $acl_types{'dstdom_regex'} = $text{'lib_aclwsr'}; } if ($squid_version >= 2.2) { $acl_types{'ident'} = $text{'lib_aclru'}; $acl_types{'myip'} = $text{'lib_aclpia'}; delete($acl_types{'user'}); } if ($squid_version >= 2.3) { $acl_types{'maxconn'} = $text{'lib_aclmc'}; $acl_types{'myport'} = $text{'lib_aclpp'}; $acl_types{'snmp_community'} = $text{'lib_aclsc'}; } if ($squid_version >= 2.4) { $acl_types{'req_mime_type'} = $text{'lib_aclrmt'}; $acl_types{'proxy_auth_regex'} = $text{'lib_aclear'}; } if ($squid_version >= 2.5) { $acl_types{'rep_mime_type'} = $text{'lib_aclrpmt'}; $acl_types{'ident_regex'} = $text{'lib_aclrur'}; $acl_types{'external'} = $text{'lib_aclext'}; $acl_types{'max_user_ip'} = $text{'lib_aclmuip'}; } # restart_button() # Returns HTML for a link to put in the top-right corner of every page sub restart_button { return undef if ($config{'restart_pos'} == 2); my $args = "redir=".&urlize(&this_url()); if (&is_squid_running()) { return ($access{'restart'} ? "<a href=\"restart.cgi?$args\">$text{'lib_buttac'}</a><br>\n" : ""). ($access{'start'} ? "<a href=\"stop.cgi?$args\">$text{'lib_buttss'}</a>\n" : ""); } else { return $access{'start'} ? "<a href=\"start.cgi?$args\">$text{'lib_buttss1'}</a>\n" : ""; } } # is_squid_running() # Returns the process ID if squid is running sub is_squid_running { my $conf = &get_config(); # Find all possible PID files my @pidfiles; my $pidstruct = &find_config("pid_filename", $conf); push(@pidfiles, $pidstruct->{'values'}->[0]) if ($pidstruct); my $def_pidstruct = &find_config("pid_filename", $conf); push(@pidfiles, $def_pidstruct->{'values'}->[0]) if ($def_pidstruct); push(@pidfiles, split(/\s+/, $config{'pid_file'})) if ($config{'pid_file'}); @pidfiles = grep { $_ ne "none" } @pidfiles; # Try check one foreach my $pidfile (@pidfiles) { my $pid = &check_pid_file($pidfile); return $pid if ($pid); } if (!@pidfiles) { # Fall back to checking for Squid process my ($pid) = &find_byname("squid"); return $pid; } return 0; } # this_url() # Returns the URL in the apache directory of the current script sub this_url { my $url = $ENV{'SCRIPT_NAME'}; if (defined($ENV{'QUERY_STRING'})) { $url .= "?$ENV{'QUERY_STRING'}"; } return $url; } # list_auth_users(file) sub list_auth_users { my ($file) = @_; my @rv; my $lnum = 0; my $fh = "USERS"; &open_readfile($fh, $file); while(<$fh>) { if (/^(#*)([^:]+):(\S+)/) { push(@rv, { 'user' => $2, 'pass' => $3, 'enabled' => !$1, 'line' => $lnum }); } $lnum++; } close($fh); if ($config{'sort_conf'}) { return sort { $a->{'user'} cmp $b->{'user'} } @rv; } else { return @rv; } } # get_squid_user(&config) # Returns the effective user and group (if any) sub get_squid_user { my ($conf) = @_; if ($squid_version < 2) { my $ceu = &find_config("cache_effective_user", $conf); if ($ceu) { return ($ceu->{'values'}->[0], $ceu->{'values'}->[1]); } return (undef, undef); } else { my $ceu = &find_config("cache_effective_user", $_[0]); my $ceg = &find_config("cache_effective_group", $_[0]); return ($ceu->{'values'}->[0], $ceg ? $ceg->{'values'}->[0] : $ceu->{'values'}->[1]); } } # chown_files(user, group, config) # Change ownership of all squid log and cache directories sub chown_files { my ($user, $group, $conf) = @_; my @list = ( $config{'log_dir'} ); # add pidfile my $pidfile; if (my $str = &find_config("pid_filename", $conf)) { $pidfile = $str->{'values'}->[0]; } else { $pidfile = $config{'pid_file'}; } push(@list, $pidfile); # add other log directories foreach my $d ("cache_access_log", "access_log", "cache_log", "cache_store_log", "cache_swap_log") { my $str; if (($str = &find_config($d, $conf)) && $str->{'values'}->[0] =~ /^(\S+)\/[^\/]+$/) { push(@list, $1); } } # add cache directories if (my @str = &find_config("cache_dir", $conf)) { foreach my $str (@str) { if ($squid_version >= 2.3) { push(@list, $str->{'values'}->[1]); } else { push(@list, $str->{'values'}->[0]); } } } else { push(@list, $config{'cache_dir'}); } system("chown -Rf $user:$group ".join(" ",@list)." >/dev/null 2>&1"); } # can_access(file) sub can_access { my ($file) = @_; my @f = grep { $_ ne '' } split(/\//, $file); return 1 if ($access{'root'} eq '/'); my @a = grep { $_ ne '' } split(/\//, $access{'root'}); for(my $i=0; $i<@a; $i++) { return 0 if ($a[$i] ne $f[$i]); } return 1; } # get_auth_file(&config) sub get_auth_file { if ($squid_version >= 2.5) { my @auth = &find_config("auth_param", $_[0]); my ($program) = grep { $_->{'values'}->[0] eq 'basic' && $_->{'values'}->[1] eq 'program' } @auth; return $program ? $program->{'values'}->[3] : undef; } else { my $authprog = &find_value("authenticate_program", $_[0]); return $authprog && $authprog =~ /(\S+)\s+(\/\S+)$/ ? $2 : undef; } } # parse_external(&external_acl_type) sub parse_external { my ($acltype) = @_; my @v = @{$acltype->{'values'}}; my $rv = { 'name' => $v[0] }; my $i; for($i=1; $v[$i] =~ /^(\S+)=(\S+)$/; $i++) { $rv->{'opts'}->{$1} = $2; } if ($v[$i] =~ /^\"(.*)\"$/) { $rv->{'format'} = $1; } else { $rv->{'format'} = $v[$i]; } $i++; $rv->{'program'} = $v[$i++]; $rv->{'args'} = [ @v[$i .. $#v] ]; return $rv; } # check_cache(&config, &caches, [include-disabled]) # Returns 1 if the cache directory looks OK, 0 if not. Also fills in the # caches list sub check_cache { my ($conf, $cachesrv, $distoo) = @_; my (@caches, $coss); my @cachestruct = &find_config("cache_dir", $conf); my $disabled = 0; if ($distoo && !@cachestruct) { # Check disabled cache directives, but exclude ones that don't exist @cachestruct = &find_config("cache_dir", $conf, 1); @cachestruct = grep { -e $_->{'values'}->[1] } @cachestruct; $disabled = 1 if (@cachestruct); } if (@cachestruct) { if ($squid_version >= 2.3) { @caches = map { $_->{'values'}->[1] } @cachestruct; } else { @caches = map { $_->{'values'}->[0] } @cachestruct; } @caches = grep { /^\// } @caches; ($coss) = grep { $_->{'values'}->[0] eq "coss" } @cachestruct; } if (!@caches) { @caches = ( $config{'cache_dir'} ); } @$cachesrv = @caches; if ($coss) { # Allow COSS files too foreach my $c (@caches) { return 0 if (!-f $c && (!-d $c || (!-d "$c/00" && !-r "$c/rock"))); } } else { # Check for dirs only foreach my $c (@caches) { return 0 if (!-d $c || (!-d "$c/00" && !-r "$c/rock")); } } return 1; } # get_squid_port() # Returns the port Squid is listening on sub get_squid_port { my $conf = &get_config(); my $port; if ($squid_version >= 2.3) { LOOP: foreach my $p (&find_config("http_port", $conf)) { foreach my $v (@{$p->{'values'}}) { if ($v =~ /^(\d+)$/) { $port = $1; } elsif ($v =~ /^(\S+):(\d+)$/) { $port = $2; } last LOOP if ($port); } } } else { $port = &find_value("http_port", $conf); } return defined($port) ? $port : 3128; } # apply_configuration() # Activate the current Squid configuration sub apply_configuration { if ($config{'squid_restart'}) { my $out = &backquote_logged("$config{'squid_restart'} 2>&1"); return "<pre>".&html_escape($out)."</pre>" if ($?); } else { my $out = &backquote_logged("$config{'squid_path'} -f $config{'squid_conf'} -k reconfigure 2>&1"); return "<pre>".&html_escape($out)."</pre>" if ($? && $out !~ /warning/i); } return undef; } # list_cachemgr_actions() # Returns a list of actions for use in the cachemgr_passwd directive sub list_cachemgr_actions { return ("5min" ,"60min" ,"asndb" ,"authenticator" ,"cbdata" ,"client_list" ,"comm_incoming" ,"config" ,"counters" ,"delay" ,"digest_stats" ,"dns" ,"events" ,"filedescriptors" ,"fqdncache" ,"histograms" ,"http_headers" ,"info" ,"io" ,"ipcache" ,"mem" ,"menu" ,"netdb" ,"non_peers" ,"objects" ,"offline_toggle" ,"pconn" ,"peer_select" ,"redirector" ,"refresh" ,"server_list" ,"shutdown" ,"store_digest" ,"storedir" ,"utilization" ,"via_headers" ,"vm_objects"); } # get_all_config_files() # Returns all files from the Squid config sub get_all_config_files { # Add main config file my @rv = ( $config{'squid_conf'} ); # Add users file my $conf = &get_config(); my $file = &get_auth_file($conf); push(@rv, $file) if ($file); # Add files from ACLs my @acl = &find_config("acl", $conf); foreach my $a (@acl) { if ($a->{'values'}->[2] =~ /^"(.*)"$/ || $a->{'values'}->[3] =~ /^"(.*)"$/ || $a->{'values'}->[4] =~ /^"(.*)"$/) { push(@rv, $1); } } return &unique(@rv); } 1;
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 |
|