Hello,

After having generally good success with preliminary testing with dspam I've 
run into an issue that after a few hours of delving deeper on appears to either 
be a bug or a platform support issue.

I'm compiling on Mac OS X 10.6.8 (old, I know) with the x86_64 architecture and 
am having a weird issue with the preferences C module (I think). Version 
3.10.2. Here's what I'm seeing:

When executing dspam from my MTA (postfix) using the "LDA proxy" method dspam 
won't accept the user's preferences because it complains they're "disallowed". 
Like so:


dspam[35366]: Ignoring disallowed preference 'trainingMode'
dspam[35366]: Ignoring disallowed preference 'spamAction'
dspam[35366]: Ignoring disallowed preference 'spamSubject'
dspam[35366]: Ignoring disallowed preference 'statisticalSedation'
dspam[35366]: Ignoring disallowed preference 'enableBNR'
dspam[35366]: Ignoring disallowed preference 'optIn'
dspam[35366]: Ignoring disallowed preference 'optOut'
dspam[35366]: Ignoring disallowed preference 'showFactors'
dspam[35366]: Ignoring disallowed preference 'enableWhitelist'
dspam[35366]: Ignoring disallowed preference 'signatureLocation'
dspam[35366]: Ignoring disallowed preference 'dailyQuarantineSummary'


Now one's first reaction to this would be: "well, of course, you don't have any 
AllowOverrides in your dspam.conf" to which I'd say, no, actually I do. In fact 
this is the default (or at least very little modified) dspam.conf as installed 
by the Makefiles (which include the AllowOverrides). Yes, I've checked many 
times: they are there, I assure you.

So after checking that about a million times (since that seemed to be the 
issue) I started looking further. I eventually compiled with verbose logging, 
turned on logging, and reviewed the logs. This surprised me:


32189: [03/14/2013 20:00:39] Loading preferences from dspam.conf
32189: [03/14/2013 20:00:39] match attribute 'AllowOverride' with value 
'trainingMode'
32189: [03/14/2013 20:00:39] find attribute 'AllowOverride'
32189: [03/14/2013 20:00:39] _ds_find_attribute(): NULL config
32189: [03/14/2013 20:00:39]  -> match: not found attribute 'AllowOverride'
32189: [03/14/2013 20:00:39] match attribute 'AllowOverride' with value 
'spamAction'
32189: [03/14/2013 20:00:39] find attribute 'AllowOverride'
32189: [03/14/2013 20:00:39] _ds_find_attribute(): NULL config
32189: [03/14/2013 20:00:39]  -> match: not found attribute 'AllowOverride'


This was quite odd. Then looking at the code, specifically src/pref.c's 
_ds_pref_aggregate() (around line 55) which leads to src/config_shared.c 
_ds_find_attribute() (around line 47) where these errors emitted.

So it appears as though the global variable agent_config is NULL when pref.c 
does the preference "aggregation" runs. THe code's logic essentially pretends 
that that means there is no AllowOverrides and thus preferences aren't used.

So, not quite sure what to do with this on a hunch I compiled using static 
libraries (configured with --disabled-shared) and viola - dspam respected my 
user preferences. Presumably it was able to see the agent_config variable. I 
haven't verified but I think dspam (where agent_config is set) sets 
agent_config loads libdspam which has _ds_pref_aggregate().

I think, but am not sure, that's what this thread is about, too, as it is also 
on Mac OS X (macports):

        http://sourceforge.net/mailarchive/message.php?msg_id=29506400

I'm willing to help track this down further if folks could point me in the 
right direction. Happy to file a bug if wanted, too.

Thoughts?


Thanks,
- Jesse



------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Dspam-devel mailing list
Dspam-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspam-devel

Reply via email to