#!/usr/local/bin/perl # edit_ports.cgi # A form for editing ports and other networking options require './squid-lib.pl'; $access{'portsnets'} || &error($text{'eports_ecannot'}); &ui_print_header(undef, $text{'eports_header'}, "", "edit_ports", 0, 0, 0, &restart_button()); $conf = &get_config(); print "
\n"; print "\n"; print "\n"; print "\n"; if ($squid_version >= 2.5) { # Display table of SSL ports print "
$text{'eports_pano'}
\n"; print "\n"; if ($squid_version >= 2.3) { # Display table of normal ports print "
$text{'eports_paap'}\n"; &ports_table("http_port"); print "
$text{'eports_ssl'}\n"; &ports_table("https_port"); print "
\n"; } print "\n"; print &opt_input($text{'eports_ip'}, "icp_port", $conf, $text{'default'}, 6); } else { # Just show single-port inputs print &opt_input($text{'eports_pp'}, "http_port", $conf, $text{'default'}, 6); print &opt_input($text{'eports_ip'}, "icp_port", $conf, $text{'default'}, 6); print "\n"; print "\n"; print &opt_input($text{'eports_ita'}, "tcp_incoming_address", $conf, $text{'eports_a'}, 15); } print &opt_input($text{'eports_ota'}, "tcp_outgoing_address", $conf, $text{'eports_a'}, 15); print "\n"; print "\n"; print &opt_input($text{'eports_oua'}, "udp_outgoing_address", $conf, $text{'eports_a'}, 15); print &opt_input($text{'eports_iua'}, "udp_incoming_address", $conf, $text{'eports_a'}, 15); print "\n"; print "\n"; print &address_input($text{'eports_mg'}, "mcast_groups", $conf, 0); print &opt_input($text{'eports_trb'}, "tcp_recv_bufsize", $conf, $text{'eports_od'}, 6); print "\n"; if ($squid_version >= 2.6) { print "\n"; print &choice_input($text{'eports_checkhost'}, "check_hostnames", $conf, "on", $text{'yes'}, "on", $text{'no'},"off"); print &choice_input($text{'eports_underscore'}, "allow_underscore", $conf, "on", $text{'yes'}, "on", $text{'no'},"off"); print "\n"; } if ($squid_version >= 2.5) { print "\n"; print &choice_input($text{'eports_unc'}, "ssl_unclean_shutdown", $conf, "off", $text{'on'},"on", $text{'off'},"off"); print "\n"; } print "\n"; print "
\n"; &ui_print_footer("", $text{'eports_return'}); # ports_table(name) sub ports_table { local ($p, $i, @ports, @opts); foreach $p (&find_config($_[0], $conf)) { foreach $v (@{$p->{'values'}}) { if ($v =~ /^(\S+):\d+$/ || $v =~ /^\d+$/) { push(@ports, $v); } else { push(@{$opts[$#ports]}, $v); } } } printf " %s\n", @ports ? "" : "checked", $text{'eports_def'}; printf " %s
\n", @ports ? "checked" : "", $text{'eports_sel'}; print "\n"; print "\n", " ", ($squid_version >= 2.5 ? " " : ""),"\n"; $i = 0; foreach $p (@ports, '') { print "\n"; printf "\n", $p =~ /^\[(\S+)\]:/ || $p =~ /^(\S+):/ ? $1 : ''; if ($squid_version >= 2.5) { # Show port options printf "\n", join(" ", @{$opts[$i]}); } print "\n"; $i++; } }
$text{'eports_p'}$text{'eports_hia'}$text{'eports_opts'}
\n", $p =~ /(\d+)$/ ? $1 : ''; printf " All\n", $p =~ /:/ ? '' : 'checked'; printf "\n", $p =~ /:/ ? 'checked' : ''; printf "