On 2006-03-22 at 15:02 +0100, Nicolas KOWALSKI wrote:
> Does this looks good enough/reliable for you ?

The only serious problem is that any Perl going into production use
really should have warnings turned on.  warnings + strict.  And taint,
if dealing with untrusted data.  This especially applies when you're
overriding an error condition to mask a problem!

"use warnings", or "perl -w" if dealing with very old Perl (5.005 or
older).

I'll also supply the decode logic I typically, which will help you see
exactly what happened in procmail, so you can get precise logs of all
failures.

> system(@ARGV);

use constant EX_RETRY => 75;

system(@ARGV) or do {
        warn "$0: failed to execute $ARGV[0]: $!\n";
        exit EX_RETRY;
};
exit 0 if $? == 0;
my ($ex, $sig, $core) = ($? >> 8, $? & 127, $? & 128);
my $emsg = "$ARGV[0] died";
$emsg .= ", exiting $ex"        if $ex;
$emsg .= ", signal $sig"        if $sig;
$emsg .= ' (core dumped)'       if $core;

warn "$emsg\n";
exit EX_RETRY;

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to