1#!/usr/local/bin/perl 2# edit_proxy.cgi 3# Proxy servers config form 4 5require './webmin-lib.pl'; 6&ReadParse(); 7&ui_print_header(undef, $text{'proxy_title'}, ""); 8 9# Show tabs 10@tabs = ( [ "proxy", $text{'proxy_tabproxy'}, "edit_proxy.cgi?mode=proxy" ], 11 [ "down", $text{'proxy_tabdown'}, "edit_proxy.cgi?mode=down" ] ); 12print &ui_tabs_start(\@tabs, "pd", $in{'mode'} || "proxy", 1); 13 14print &ui_tabs_start_tab("pd", "proxy"); 15print $text{'proxy_desc'},"<p>\n"; 16print &ui_form_start("change_proxy.cgi", "post"); 17print &ui_table_start($text{'proxy_header'}, undef, 2, [ "width=30%" ]); 18 19# HTTP proxy 20print &ui_table_row($text{'proxy_http'}, 21 &ui_opt_textbox("http", $gconfig{'http_proxy'}, 50, 22 $text{'proxy_none'}), undef, [ "valign=middle","valign=middle" ]); 23 24# FTP proxy 25print &ui_table_row($text{'proxy_ftp'}, 26 &ui_opt_textbox("ftp", $gconfig{'ftp_proxy'}, 50, 27 $text{'proxy_none'}), undef, [ "valign=middle","valign=middle" ]); 28 29# No proxy for domains 30print &ui_table_row($text{'proxy_nofor'}, 31 &ui_textbox("noproxy", $gconfig{'noproxy'}, 60), undef, [ "valign=middle","valign=middle" ]); 32 33# User and password 34print &ui_table_row($text{'proxy_user'}, 35 &ui_textbox("puser", $gconfig{'proxy_user'}, 20), undef, [ "valign=middle","valign=middle" ]); 36print &ui_table_row($text{'proxy_pass'}, 37 &ui_password("ppass", $gconfig{'proxy_pass'}, 20), undef, [ "valign=middle","valign=middle" ]); 38 39# Bind to address for outgoing connections 40print &ui_table_row($text{'proxy_bind'}, 41 &ui_opt_textbox("bind", $gconfig{'bind_proxy'}, 35, $text{'default'}), undef, [ "valign=middle","valign=middle" ]); 42 43# Fallback to direct 44print &ui_table_row($text{'proxy_fallback'}, 45 &ui_yesno_radio("fallback", int($gconfig{'proxy_fallback'})), undef, [ "valign=middle","valign=middle" ]); 46 47print &ui_table_end(); 48print &ui_form_end([ [ "save", $text{'save'} ] ]); 49print &ui_tabs_end_tab(); 50 51# OSDN mirror form 52print &ui_tabs_start_tab("pd", "down"); 53print $text{'proxy_desc2'},"<p>\n"; 54print &ui_form_start("change_osdn.cgi"); 55print &ui_table_start($text{'proxy_header2'}, undef, 2); 56 57# Cache size 58print &ui_table_row($text{'proxy_cache'}, 59 &ui_radio("cache_def", $gconfig{'cache_size'} ? 0 : 1, 60 [ [ 1, $text{'proxy_cache1'} ], 61 [ 0, $text{'proxy_cache0'} ] ])."\n". 62 &ui_bytesbox("cache", $gconfig{'cache_size'}, 8), undef, [ "valign=middle","valign=middle" ]); 63 64# Cache time 65print &ui_table_row($text{'proxy_daysmax'}, 66 &ui_opt_textbox("days", $gconfig{'cache_days'}, 5, 67 $text{'proxy_daysdef'})." ".$text{'proxy_days'}, undef, [ "valign=middle","valign=middle" ]); 68 69# Modules to cache in 70$excl = ($gconfig{'cache_mods'} =~ s/^\!//); 71@mods = split(/\s+/, $gconfig{'cache_mods'}); 72print &ui_table_row($text{'proxy_mods'}, 73 &ui_radio("mods_def", !$gconfig{'cache_mods'} ? 0 : 74 $excl ? 2 : 1, 75 [ [ 0, $text{'proxy_mods0'} ], 76 [ 1, $text{'proxy_mods1'} ], 77 [ 2, $text{'proxy_mods2'} ] ])."<br>\n". 78 &ui_select("mods", \@mods, 79 [ map { [ $_->{'dir'}, $_->{'desc'} ] } 80 sort { lc($a->{'desc'}) cmp lc($b->{'desc'}) } 81 &get_all_module_infos() ], 82 10, 1)); 83 84print &ui_table_end(); 85print &ui_form_end([ [ "save", $text{'save'} ], 86 [ "clear", $text{'proxy_clear'} ] ]); 87 88@cached = &list_cached_files(); 89if (@cached) { 90 # Show cache management and clearing buttons 91 print &ui_hr(); 92 print &ui_buttons_start(); 93 print &ui_buttons_row("cache.cgi", $text{'proxy_cacheb'}, 94 $text{'proxy_cachebdesc'}); 95 $sz = &nice_size(&disk_usage_kb($main::http_cache_directory)*1024); 96 print &ui_buttons_row("clear_cache.cgi", $text{'proxy_clear'}, 97 &text('proxy_cleardesc', scalar(@cached), $sz)); 98 print &ui_buttons_end(); 99 } 100print &ui_tabs_end_tab(); 101 102print &ui_tabs_end(1); 103 104&ui_print_footer("", $text{'index_return'}); 105 106