On Thursday 27 May 2004 01:26 am, Harald Schneider wrote:
> Added a retry counter to avoid an inifinite loop, when spamd is down:
>
> #-----------------------------------------------------------------
> # MOD.start
> #-----------------------------------------------------------------
> # pass rest to spamc
> #MOD my $checkedEmail=`spamc -f < $tmpFile`;
>
> my $delay = 0;
> my $retry = 0;
> my $checkedEmail;
> do {
>       $checkedEmail = '';
>       print "*** spamc delayed: $delay sec.\n" if ($delay > 0) && ($DEBUG
> == 1);
>       sleep($delay);
>       open2(*SPAMC_R,*SPAMC_W,'spamc -f');
>       print SPAMC_W $tmpFile;
>       close(SPAMC_W);
>
>       my $bak = $/;
>       undef $/;
>       $checkedEmail = <SPAMC_R>;
>       close(SPAMC_R);
>       $/ = $bak;
>       $delay += 5;
>       $retry += 1;
>       last if $retry > 1000;
> } while($checkedEmail !~ /X-Spam-Flag/gms );
>
> #-----------------------------------------------------------------
> # MOD.end
> #-----------------------------------------------------------------
>
> --Harald

Harald -

That's great. Will implement in one or two days. Many thanks.

I normally replace something like this:

>       my $bak = $/;
>       undef $/;
>       $checkedEmail = <SPAMC_R>;
>       close(SPAMC_R);
>       $/ = $bak;

with:

        $checkedEmail = do { local $/; <SPAMC_R>; };
        close(SPAMC_R);

That seems to work and saves precious keystrokes.
(You see, I'm getting old, and I beleive that each person
only has a certain number of keystrokes in their lifetime; I
try to save each one I can so I don't run out ;) ).

Also, 1000 retries at an average of 500 x 5 seconds each
is 1000 x 500 x 5 = 2,500,000 seconds which is about 29 days!
I think I'll drop the retry count down a bit.

Aloha => Beau;

-
To unsubscribe from this list: send the line "unsubscribe xmail" in
the body of a message to [EMAIL PROTECTED]
For general help: send the line "help" in the body of a message to
[EMAIL PROTECTED]

Reply via email to