Handle hostnames with upper-case letters
[webmin.git] / filter / save_forward.cgi
1 #!/usr/local/bin/perl
2 # Create, update or delete a forwarding filter
3
4 require './filter-lib.pl';
5 &ReadParse();
6 &error_setup($text{'forward_err'});
7
8 # Find existing forwarding filter object
9 &lock_file($procmail::procmailrc);
10 @filters = &list_filters();
11 ($old) = grep { $_->{'actiontype'} eq '!' && $_->{'nocond'} } @filters;
12 $filter = $old;
13
14 if ($filter && !$in{'enabled'}) {
15         # Just delete
16         &delete_filter($filter);
17         }
18 elsif ($in{'enabled'}) {
19         # Create or update
20         if (!$filter) {
21                 $filter = { 'actiontype' => '!',
22                             'body' => 0,
23                             'nobounce' => 1 };
24                 }
25         $filter->{'continue'} = $in{'continue'};
26         $in{'forward'} =~ /\S/ || &error($text{'save_eforward'});
27         $in{'forward'} =~ s/^\s+//;
28         $in{'forward'} =~ s/\s+$//;
29         $in{'forward'} =~ s/\s+/,/g;
30         $filter->{'action'} = $in{'forward'};
31
32         if ($old) {
33                 &modify_filter($filter);
34                 }
35         else {
36                 # Forwarding should go last
37                 &create_filter($filter);
38                 }
39         }
40
41 &unlock_file($procmail::procmailrc);
42 &redirect("");
43