Handle hostnames with upper-case letters
[webmin.git] / qmailadmin / save_route.cgi
1 #!/usr/local/bin/perl
2 # save_route.cgi
3 # Save or delete an SMTP route
4
5 require './qmail-lib.pl';
6 &ReadParse();
7 &error_setup($text{'rsave_err'});
8
9 @routes = &list_routes();
10 $r = $routes[$in{'idx'}] if (defined($in{'idx'}));
11
12 if ($in{'delete'}) {
13         # delete some route
14         $logr = $r;
15         &delete_route($r);
16         }
17 else {
18         # saving or creating .. check inputs
19         $in{'from'} =~ /^[A-Za-z0-9\.\-]+$/ ||
20                 &error(&text('rsave_efrom', $in{'from'}));
21         $in{'to_def'} ||
22             &to_ipaddress($in{'to'}) || &to_ip6address($in{'to'}) ||
23                         &error(&text('rsave_eto', $in{'to'}));
24         $in{'port_def'} || $in{'port'} =~ /^\d+$/ ||
25                 &error(&text('rsave_eport', $in{'port'}));
26         $newr{'from'} = $in{'from'};
27         $newr{'to'} = $in{'to'};
28         $newr{'port'} = $in{'port'} if (!$in{'port_def'});
29
30         if ($in{'new'}) { &create_route(\%newr); }
31         else { &modify_route($r, \%newr); }
32         $logr = \%newr;
33         }
34 &webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
35             "route", $logr->{'from'}, $logr);
36 &redirect("list_routes.cgi");
37