You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@spamassassin.apache.org by Sean Doherty <se...@copperfasten.com> on 2004/10/08 14:01:41 UTC
dccifd question
Hi,
Spamassassins DCC configuration option "use_dcc" specifies
whether to use DCC or not. However, it appears that
Spamassassin will perform a dcc check if dccifd is available
(if the socket specified under dcc_dccifd_pathor exists) or
use_dcc is set to 1. The same logic is in both 2.64 and 3.0.
Can anyone explain the reasoning behind this? I would have
thought that if use_dcc = 0, then that would be that and no
dcc checks would be performed.
sub check_dcc {
my ($self, $fulltext) = @_;
my $have_dccifd = $self->is_dccifd_available();
return 0 unless ($have_dccifd || $self->is_dcc_available());
...
If I comment don't specify dcc_dccifd_path and dcc_home in
local.cf then no dcc checks will occur, so that workaround
is fine. Likewise, if I stop the dccifd daemon.
This has caught me out before at a customer site, where
DCC ports where blocked by their firewall. I set use_dcc to
0, but didn't stop the dccifd daemon. This resulted in
dcc_timeout delay for each check...
Why isn't use_dcc the overriding parameter. If it only
controls DCCproc then the documentation should say this.
TIA,
- Sean
Re: dccifd question
Posted by Matt Kettler <mk...@evi-inc.com>.
At 08:01 AM 10/8/2004, Sean Doherty wrote:
>Spamassassins DCC configuration option "use_dcc" specifies
>whether to use DCC or not. However, it appears that
>Spamassassin will perform a dcc check if dccifd is available
>(if the socket specified under dcc_dccifd_pathor exists) or
>use_dcc is set to 1. The same logic is in both 2.64 and 3.0.
>Can anyone explain the reasoning behind this? I would have
>thought that if use_dcc = 0, then that would be that and no
>dcc checks would be performed.
>
>sub check_dcc {
> my ($self, $fulltext) = @_;
> my $have_dccifd = $self->is_dccifd_available();
>
> return 0 unless ($have_dccifd || $self->is_dcc_available());
That would indeed appear to be a bug, although I'd say the bug doesn't lay
where you say.
In theory "is_dcc_available" really would be more accurately named
"is_dccproc_available". It not only checks if DCC is available, but it
checks that dccproc is installed.
Rather than using "is_dcc_available" as a shunt to avoid checking for
dccifd I suspect a more proper thing would be for is_dccifd_available() to
check for use_dcc as well, just like is_dcc_available() does, right after
the check for local mode.
Something like this (for made against Dns.pm for SA 3.0, but the theory
applies to 2.6x as well):
$diff -u Dns.pm.orig Dns.pm
--- Dns.pm.orig 2004-10-08 11:08:52.000000000 -0400
+++ Dns.pm 2004-10-08 11:09:09.000000000 -0400
@@ -583,6 +583,8 @@
return 0;
}
+ if (!$self->{conf}->{use_dcc}) { return 0; }
+
my $dcchome = $self->{conf}->{dcc_home} || '';
my $dccifd = $self->{conf}->{dcc_dccifd_path} || '';