You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@spamassassin.apache.org by bu...@bugzilla.spamassassin.org on 2004/02/06 16:46:11 UTC
[Bug 3017] New: Tweak for dccifd interface
http://bugzilla.spamassassin.org/show_bug.cgi?id=3017
Summary: Tweak for dccifd interface
Product: Spamassassin
Version: 2.63
Platform: All
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P5
Component: Tools
AssignedTo: spamassassin-dev@incubator.apache.org
ReportedBy: millebr@cat.com
I am currently running SpamAssassin 2.63 with MIMEDefang 2.39 and DCCifd 1.2.30
on a Intel based Red Hat Linux 9 platform.
I was having problems with these two errors (one right after another)in my
maillogs:
Jan 28 12:59:51 spambox dccifd[10919]: missing message body
Jan 28 12:59:51 spambox mimedefang-multiplexor: Slave 2 stderr: DCCifd -> check
skipped: Illegal seek Died
at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/Dns.pm line 639
After digging into the code for SpamAssassin, MIMEDefang, and DCCifd, I
determined that it appeared that SpamAssassin was establishing a connection
through the UNIX domain socket with DCCifd, even if the message it was
establishing a connection for did not have a message body (nothing in $self->
{textarray} in the get_pristine sub in NoMailAudit.pm). A way to reproduce
this error on a box running those three programs together is to telnet to port
25, put in your ehlo, mail from, rcpt to, and data, but then for data type
nothing but the "." to end the message.
So, I altered lines 2561 - 2566 in EvalTests.pm to include a check for the
message body. I make a call to get_pristine_body(), and if that comes back
blank then I skip the DCCifd check and log what I did. This is the new code:
New EvalTests.pm, lines 2561 - 2571
my $full = $self->{msg}->get_pristine();
my $fullcheck = $self->{msg}->get_pristine_body();
if ( $fullcheck ne "" ) {
if ( $have_dccifd ) {
return $self->dccifd_lookup (\$full);
} else {
return $self->dcc_lookup (\$full);
}
} else {
warn ("DCCifd -> check skipped: no message body");
}
This alteration seems to have corrected the errors that DCCifd was giving, and
it avoids the "die" in Dns.pm. Now, when I get a message with no body all I
get is the "DCCifd -> check skipped: no message body" error in my logs (which
is primarly just informational).
Would it be possible to include this fix in the next version of SpamAssassin?
If you have any questions or comments, or if I did this totally wrong :) feel
free to contact me at
millebr@cat.com
Thanks!
Billy Miller
Internet Email Administrator
Caterpillar, Inc.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.