diff -Naur mimedefang-2.51/mimedefang.pl.in mimedefang-2.51.nate/mimedefang.pl.in --- mimedefang-2.51/mimedefang.pl.in 2005-02-08 10:04:39.000000000 -0600 +++ mimedefang-2.51.nate/mimedefang.pl.in 2005-03-08 20:10:17.000000000 -0600 @@ -6018,7 +6018,7 @@ # %DESCRIPTION: # Scans message using SpamAssassin (http://www.spamassassin.org) #*********************************************************************** -sub spam_assassin_is_spam (;$) { +sub spam_assassin_is_spam (;$$) { my($hits, $req, $tests, $report) = spam_assassin_check(@_); return undef if (!defined($hits)); @@ -6039,7 +6039,7 @@ # %DESCRIPTION: # Scans message using SpamAssassin (http://www.spamassassin.org) #*********************************************************************** -sub spam_assassin_check (;$) { +sub spam_assassin_check (;$$) { my($status) = spam_assassin_status(@_); return undef if (!defined($status)); @@ -6064,17 +6064,35 @@ # %DESCRIPTION: # Scans message using SpamAssassin (http://www.spamassassin.org) #*********************************************************************** -sub spam_assassin_status (;$) { +sub spam_assassin_status (;$$) { + my($config,$username) = @_; - my $object = spam_assassin_init(@_); + my $object = spam_assassin_init($config); return undef unless $object; + if ($username) { + push_status_tag("Setting up Preferences"); + # Set up LDAP preferences if needed + if ("$username" =~ /^ldap:/) { + $username =~ s/ldap://g; + $SASpamTester->load_scoreonly_ldap($username); + $SASpamTester->signal_user_changed( + { + username => $username, + user_dir => undef + } + ); + } + pop_status_tag(); + } + my $mail = spam_assassin_mail(); return undef unless $mail; my $status; push_status_tag("Running SpamAssassin"); $status = $object->check($mail); + $mail->finish(); pop_status_tag(); return $status; }