Handle hostnames with upper-case letters
[webmin.git] / webmin / edit_proxy.cgi
1 #!/usr/local/bin/perl
2 # edit_proxy.cgi
3 # Proxy servers config form
4
5 require './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" ] );
12 print &ui_tabs_start(\@tabs, "pd", $in{'mode'} || "proxy", 1);
13
14 print &ui_tabs_start_tab("pd", "proxy");
15 print $text{'proxy_desc'},"<p>\n";
16 print &ui_form_start("change_proxy.cgi", "post");
17 print &ui_table_start($text{'proxy_header'}, undef, 2, [ "width=30%" ]);
18
19 # HTTP proxy
20 print &ui_table_row($text{'proxy_http'},
21         &ui_opt_textbox("http", $gconfig{'http_proxy'}, 50,
22                         $text{'proxy_none'}));
23
24 # FTP proxy
25 print &ui_table_row($text{'proxy_ftp'},
26         &ui_opt_textbox("ftp", $gconfig{'ftp_proxy'}, 50,
27                         $text{'proxy_none'}));
28
29 # No proxy for domains
30 print &ui_table_row($text{'proxy_nofor'},
31         &ui_textbox("noproxy", $gconfig{'noproxy'}, 60));
32
33 # User and password
34 print &ui_table_row($text{'proxy_user'},
35         &ui_textbox("puser", $gconfig{'proxy_user'}, 20));
36 print &ui_table_row($text{'proxy_pass'},
37         &ui_password("ppass", $gconfig{'proxy_pass'}, 20));
38
39 # Bind to address for outgoing connections
40 print &ui_table_row($text{'proxy_bind'},
41         &ui_opt_textbox("bind", $gconfig{'bind_proxy'}, 35, $text{'default'}));
42
43 # Fallback to direct
44 print &ui_table_row($text{'proxy_fallback'},
45         &ui_yesno_radio("fallback", int($gconfig{'proxy_fallback'})));
46
47 print &ui_table_end();
48 print &ui_form_end([ [ "save", $text{'save'} ] ]);
49 print &ui_tabs_end_tab();
50
51 # OSDN mirror form
52 print &ui_tabs_start_tab("pd", "down");
53 print $text{'proxy_desc2'},"<p>\n";
54 print &ui_form_start("change_osdn.cgi");
55 print &ui_table_start($text{'proxy_header2'}, undef, 2, [ "width=30%" ]);
56
57 # Cache size
58 print &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));
63
64 # Cache time
65 print &ui_table_row($text{'proxy_daysmax'},
66                     &ui_opt_textbox("days", $gconfig{'cache_days'}, 5,
67                             $text{'proxy_daysdef'})." ".$text{'proxy_days'});
68
69 # Modules to cache in
70 $excl = ($gconfig{'cache_mods'} =~ s/^\!//);
71 @mods = split(/\s+/, $gconfig{'cache_mods'});
72 print &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
84 print &ui_table_end();
85 print &ui_form_end([ [ "save", $text{'save'} ],
86                      [ "clear", $text{'proxy_clear'} ] ]);
87
88 @cached = &list_cached_files();
89 if (@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         }
100 print &ui_tabs_end_tab();
101
102 print &ui_tabs_end(1);
103
104 &ui_print_footer("", $text{'index_return'});
105