Handle hostnames with upper-case letters
[webmin.git] / itsecur-firewall / save_nat.cgi
1 #!/usr/bin/perl
2 # save_nat.cgi
3 # Update NAT setting
4
5 require './itsecur-lib.pl';
6 &can_edit_error("nat");
7 &ReadParse();
8 &lock_itsecur_files();
9
10 &error_setup($text{'nat_err'});
11 if ($in{'nat'}) {
12         $iface = $in{'iface'} || $in{'iface_other'};
13         $iface =~ /^[a-z0-9:\.]+$/ || &error($text{'nat_eiface'});
14         }
15 for($i=0; defined($n = $in{"net_$i"}); $i++) {
16         push(@nets, $n) if ($n);
17         }
18 for($i=0; defined($n = $in{"excl_$i"}); $i++) {
19         push(@nets, "!$n") if ($n);
20         }
21 local @dests;
22 for($i=0; defined($e = $in{"ext_$i"}); $i++) {
23         next if (!$e);  
24         #gethostbyname($e) || &error(&text('nat_eext', $i+1));
25         valid_host($e) || &error(&text('nat_eext', $i+1));
26         #is_one_host("\@$e") && &error(&text('nat_eext', $i+1));        
27         $n = $in{"int_$i"};
28         #gethostbyname($n) || &error(&text('nat_eint', $i+1));
29         ##valid_host($n) || &error(&text('nat_eint', $i+1));    
30         is_one_host("\@$n") && &error(&text('nat_eint', $i+1));         
31         $v = $in{"virt_$i"};
32         push(@maps, [ $e, $n, $v ? ( $v ) : ( ) ]);
33         }
34 &automatic_backup();
35 &save_nat($iface, @nets, @maps);
36 &unlock_itsecur_files();
37 &remote_webmin_log("update", "nat");
38 &redirect("");
39