#!/usr/local/bin/perl # edit_icp.cgi # A form for editing options for communication with other caches require './squid-lib.pl'; $access{'othercaches'} || &error($text{'eicp_ecannot'}); &ui_print_header(undef, $text{'eicp_header'}, "", "edit_icp", 0, 0, 0, &restart_button()); $conf = &get_config(); $cache_host = $squid_version >= 2 ? "cache_peer" : "cache_host"; @ch = &find_config($cache_host, $conf); @links = ( &select_all_link("d"), &select_invert_link("d"), "$text{'eicp_aac'}" ); if (@ch) { #print &ui_subheading($text{'eicp_opcs'}); $mid = int((@ch+1)/2); print &ui_form_start("delete_icps.cgi", "post"); print &ui_links_row(\@links); print "
\n"; &cache_table(0, $mid-1); print "\n"; if ($mid < @ch) { &cache_table($mid, $#ch); } print "
\n"; print &ui_links_row(\@links); print &ui_form_end([ [ "delete", $text{'eicp_delete'} ] ]); } else { print "$text{'eicp_nocd'}.

\n"; print &ui_links_row([ $links[2] ]); } print &ui_hr(); print "

\n"; print "\n"; print "\n"; print "
$text{'eicp_cso'}
\n"; if ($squid_version < 2) { print "\n"; print &list_input($text{'eicp_fdfd'}, "local_domain", $conf); print &address_input($text{'eicp_fdfi'}, "local_ip", $conf); print "\n"; print "\n"; print &list_input($text{'eicp_dif'}, "inside_firewall", $conf); print &address_input($text{'eicp_iif'}, "firewall_ip", $conf); print "\n"; } print "\n"; print &list_input($text{'eicp_dfuc'}, "hierarchy_stoplist", $conf, 1, $text{'default'}); print "\n"; if ($squid_version < 2) { print "\n"; print &choice_input($text{'eicp_bpfsp'}, "single_parent_bypass", $conf, "off", $text{'yes'}, "on", $text{'no'}, "off"); print &choice_input($text{'eicp_ssip'}, "source_ping", $conf, "off", $text{'yes'}, "on", $text{'no'}, "off"); print "\n"; print "\n"; print &opt_input($text{'eicp_crt'}, "neighbor_timeout", $conf, $text{'default'}, 4, $text{'eicp_secs'}); print "\n"; } else { print "\n"; print &opt_input($text{'eicp_iqt'}, "icp_query_timeout", $conf, $text{'default'}, 8, "ms"); print &opt_input($text{'eicp_mit'}, "mcast_icp_query_timeout", $conf, $text{'default'}, 8, "ms"); print "\n"; print "\n"; print &opt_input($text{'eicp_dpt'}, "dead_peer_timeout", $conf, $text{'default'}, 8, $text{'eicp_secs'}); print "\n"; } if ($squid_version >= 2.3) { # Display always/never_direct options print "\n"; print "\n"; } print "

\n"; @always = &find_config("always_direct", $conf); if (@always) { print "$text{'eicp_always'}

\n"; print "\n"; print "\n"; print "\n"; print "\n"; $hc = 0; foreach $h (@always) { @v = @{$h->{'values'}}; if ($v[0] eq "allow") { $v[0] = $text{'eacl_allow'}; } else { $v[0] = $text{'eacl_deny'}; } print "\n"; print "\n"; print "\n"; print "\n"; $hc++; } print "
$text{'eacl_act'}$text{'eacl_acls1'}$text{'eacl_move'}
{'index'}\">", "$v[0]",&html_escape(join(' ', @v[1..$#v])), "\n"; if ($hc != @always-1) { print "", ""; } else { print ""; } if ($hc != 0) { print "", ""; } print "
\n"; } else { print "$text{'eicp_noalways'}

\n"; } print "$text{'eicp_addalways'}\n"; print "

\n"; @never = &find_config("never_direct", $conf); if (@never) { print "$text{'eicp_never'}

\n"; print "\n"; print "\n"; print "\n"; print "\n"; $hc = 0; foreach $h (@never) { @v = @{$h->{'values'}}; if ($v[0] eq "allow") { $v[0] = $text{'eacl_allow'}; } else { $v[0] = $text{'eacl_deny'}; } print "\n"; print "\n"; print "\n"; print "\n"; $hc++; } print "
$text{'eacl_act'}$text{'eacl_acls1'}$text{'eacl_move'}
{'index'}\">", "$v[0]",&html_escape(join(' ', @v[1..$#v])), "\n"; if ($hc != @never-1) { print "", ""; } else { print ""; } if ($hc != 0) { print "", ""; } print "
\n"; } else { print "$text{'eicp_nonever'}

\n"; } print "$text{'eicp_addnever'}\n"; print "

\n"; print "
\n"; &ui_print_footer("", $text{'eicp_return'}); # cache_table(start, end) sub cache_table { local @tds = ( "width=5" ); print &ui_columns_start([ "", $text{'eicp_thost'}, $text{'eicp_ttype'}, $text{'eicp_tpport'}, $text{'eicp_tiport'} ], 100, 0, \@tds); for($i=$_[0]; $i<=$_[1]; $i++) { @chv = @{$ch[$i]->{'values'}}; print &ui_checked_columns_row([ "". &html_escape($chv[0])."", &html_escape($chv[1]), &html_escape($chv[2]), &html_escape($chv[3]) ], \@tds, "d", $i); } print &ui_columns_end(); }