Handle hostnames with upper-case letters
[webmin.git] / wuftpd / save_net.cgi
1 #!/usr/local/bin/perl
2 # save_net.cgi
3 # Save networking options
4
5 require './wuftpd-lib.pl';
6 &error_setup($text{'net_err'});
7 &ReadParse();
8
9 &lock_file($config{'ftpaccess'});
10 $conf = &get_ftpaccess();
11
12 # Save TCP windows
13 for($i=0; defined($tsize = $in{"tsize_$i"}); $i++) {
14         next if (!$tsize);
15         $tsize =~ /^\d+$/ || &error(&text('net_etsize', $tsize));
16         push(@tcpwindow, { 'name' => 'tcpwindow',
17                            'values' => [ $tsize, $in{"tclass_$i"} ] } );
18         }
19 &save_directive($conf, 'tcpwindow', \@tcpwindow);
20
21 # Save PASV options
22 for($i=0; defined($aip = $in{"aip_$i"}); $i++) {
23         $anet = $in{"anet_$i"}; $acidr = $in{"acidr_$i"};
24         next if (!$aip);
25         &check_ipaddress($aip) || &error(&text('net_eip', $aip));
26         &check_ipaddress($anet) || &error(&text('net_enet', $anet));
27         $acidr =~ /^\d+$/ && $acidr <= 32 || &error(&text('net_ecidr', $acidr));
28         push(@passive, { 'name' => 'passive',
29                          'values' => [ 'address', $aip, "$anet/$acidr" ] } );
30         }
31 for($i=0; defined($pmin = $in{"pmin_$i"}); $i++) {
32         $pmax = $in{"pmax_$i"}; $pnet = $in{"pnet_$i"};
33         $pcidr = $in{"pcidr_$i"};
34         next if ($pmin eq "" || $pmax eq "");
35         $pmin =~ /^\d+$/ || &error(&text('net_eport', $pmin));
36         $pmax =~ /^\d+$/ || &error(&text('net_eport', $pmax));
37         &check_ipaddress($pnet) || &error(&text('net_enet', $pnet));
38         $pcidr =~ /^\d+$/ && $pcidr <= 32 || &error(&text('net_ecidr', $pcidr));
39         push(@passive,
40                 { 'name' => 'passive',
41                   'values' => [ 'ports', "$pnet/$pcidr", $pmin, $pmax ] } );
42         }
43 &save_directive($conf, 'passive', \@passive);
44
45 &flush_file_lines();
46 &unlock_file($config{'ftpaccess'});
47 &webmin_log("net", undef, undef, \%in);
48 &redirect("");
49