Handle hostnames with upper-case letters
[webmin.git] / webmin / change_proxy.cgi
1 #!/usr/local/bin/perl
2 # change_proxy.cgi
3 # Change proxy settings
4
5 require './webmin-lib.pl';
6 &error_setup($text{'proxy_err'});
7 &ReadParse();
8
9 &lock_file("$config_directory/config");
10 if ($in{'http_def'}) { delete($gconfig{'http_proxy'}); }
11 elsif ($in{'http'} !~ /^http:\/\/(\S+):(\d+)/) {
12         &error(&text('proxy_ehttp2', "http://proxy.foo.com:8080/"));
13         }
14 else { $gconfig{'http_proxy'} = $in{'http'}; }
15
16 if ($in{'ftp_def'}) { delete($gconfig{'ftp_proxy'}); }
17 elsif ($in{'ftp'} !~ /^http:\/\/(\S+):(\d+)/) {
18         &error(&text('proxy_eftp2', "http://proxy.foo.com:8080/"));
19         }
20 else { $gconfig{'ftp_proxy'} = $in{'ftp'}; }
21
22 if ($in{'bind_def'}) {
23         delete($gconfig{'bind_proxy'});
24         }
25 else {
26         &check_ipaddress($in{'bind'}) || &error($text{'proxy_ebind'});
27         $gconfig{'bind_proxy'} = $in{'bind'};
28         }
29 $gconfig{'proxy_fallback'} = $in{'fallback'};
30
31 $gconfig{'proxy_user'} = $in{'puser'};
32 $gconfig{'proxy_pass'} = $in{'ppass'};
33 $gconfig{'noproxy'} = $in{'noproxy'};
34
35 # Write out the config
36 &write_file("$config_directory/config", \%gconfig);
37 &unlock_file("$config_directory/config");
38 &webmin_log('proxy', undef, undef, \%in);
39
40 &redirect("");
41