Thijs Kinkhorst wrote:
> First, I think it's always a good idea not to enable DEBUG by default.

Sure, it's a mistake, I perfectly understand this.

> Second, I don't think that it requires a "rewrite of the entire file" to fix 
> it. Using PHP's tempnam() function to get the filenames instead of the 
> hardcoded path names with PID is a change of just a few lines.

Did you mean Perl mktemp()? It's not a PHP script!!! :) That makes me
think that I might have missed some Perl dependencies. The script uses
the following:

use strict;
use MIME::Tools;
use MIME::Parser;
use File::MkTemp;

does any of you knows what it corresponds in terms of Debian deps?

Last, would a patch like the attached one would do? I'm all but good in
Perl, so I might need help on that one.

Thank you all for your time on this issue,
Cheers,

Thomas

diff --git a/admin/sa-wrapper b/admin/sa-wrapper
index 76a2ddd..67ee4dc 100755
--- a/admin/sa-wrapper
+++ b/admin/sa-wrapper
@@ -15,8 +15,9 @@
 use strict;
 use MIME::Tools;
 use MIME::Parser;
+use File::MkTemp;
 
-my $DEBUG = 1;
+my $DEBUG = 0;
 my $UNPACK_DIR = '/var/lib/amavis/tmp';
 my $SA_LEARN = '/usr/bin/sa-learn';
 # my @DOMAINS = qw/example.com example.org/;
@@ -47,8 +48,8 @@ sub recurs
 
 	if ($ent->head->mime_type eq 'message/rfc822') {
 		if ($DEBUG) {
-			unlink "/tmp/spam.log.$$" if -e "/tmp/spam.log.$$";
-			open(OUT, "|$SA_LEARN -D --$spamham --single >>/tmp/spam.log.$$ 2>&1") or die "Cannot pipe $SA_LEARN: $!";
+			$debug_file = mktemp("/tmp/sa-wrapper.XXXXXX.log");
+			open(OUT, "|$SA_LEARN -D --$spamham --single >>$debug_file 2>&1") or die "Cannot pipe $SA_LEARN: $!";
 		} else {
 			open(OUT, "|$SA_LEARN --$spamham --single") or die "Cannot pipe $SA_LEARN: $!";
 		}
@@ -73,7 +74,8 @@ unless (grep { $_ eq $domain } @DOMAINS) {
 
 if ($DEBUG) {
 	MIME::Tools->debugging(1);
-	open(STDERR, ">/tmp/spam_err.log");
+	$debug_file2 = mktemp("/tmp/sa-wrapper.XXXXXX");
+	open(STDERR, ">$debug_file2");
 }
 my $parser = new MIME::Parser;
 $parser->extract_nested_messages(0);

Reply via email to