1#!/usr/local/bin/perl
2# Create, update or delete a forwarding filter
3
4require './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
14if ($filter && !$in{'enabled'}) {
15	# Just delete
16	&delete_filter($filter);
17	}
18elsif ($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
44