--- sendmail.pl.orig Fri Jun 14 13:40:51 2002 +++ sendmail.pl Sat Jun 15 17:01:15 2002 @@ -466,7 +466,7 @@ my($Test, $Mail) = @_; local(*READER, *WRITER); - my($SAHitList); + my($SAHitList, $SAHits, $SAReqHits, $IsItSpam); my $PipeReturn = 0; pipe(READER, WRITER); @@ -482,7 +482,8 @@ # Do the actual tests and work out the integer result $spamness = $Test->check($Mail); $SAResult = ($spamness->is_spam())?1:0; - #$SAResult = int($spamness->get_hits()) if $SAResult; + print WRITER $spamness->get_hits() . "\n" . + $spamness->get_required_hits() . "\n"; $HitList = $spamness->get_names_of_tests_hit(); # Destroy the status result -- should be unnecessary print WRITER "score=" . $spamness->get_hits() . @@ -500,7 +501,13 @@ close(WRITER); local $SIG{ALRM} = sub { die "Command Timed Out" }; alarm $Config::SpamAssassinTimeout; + $SAHits = ; + $SAReqHits = ; $SAHitList = ; + chomp $SAHits; + chomp $SAReqHits; + $SAHits = $SAHits + 0.0; + $SAReqHits = $SAReqHits + 0.0; chomp $SAHitList; close(READER); wait; @@ -540,7 +547,8 @@ Log::DebugLog("SpamAssassin returned $PipeReturn"); $PipeReturn = $PipeReturn>>8; - return ($PipeReturn, $SAHitList); + $IsItSpam = ($SAHits >= $SAReqHits)?1:0; + return ($IsItSpam, $SAHitList); }