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