Mailing List Archive

svn commit: rev 6571 - incubator/spamassassin/trunk/lib/Mail/SpamAssassin
Author: jm
Date: Sat Feb 7 15:55:22 2004
New Revision: 6571

Modified:
incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
incubator/spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm
Log:
bug 2556: added 'auto_whitelist_db_modules' to provide way for user to specify db module preference so that old AWL files can be used

Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Sat Feb 7 15:55:22 2004
@@ -189,6 +189,7 @@
$self->{auto_whitelist_path} = "__userstate__/auto-whitelist";
$self->{auto_whitelist_file_mode} = '0700';
$self->{auto_whitelist_factor} = 0.5;
+ $self->{auto_whitelist_db_modules} = "DB_File GDBM_File NDBM_File SDBM_File";

$self->{subject_tag} = '*****SPAM*****';
$self->{rewrite_header} = { };
@@ -1659,6 +1660,24 @@

if ( $key eq 'auto_whitelist_factor' ) {
$self->{auto_whitelist_factor} = $value+0; next;
+ }
+
+=item auto_whitelist_db_modules Module ... (default: see below)
+
+What database modules should be used for the auto-whitelist storage database
+file. The first named module that can be loaded from the perl include path
+will be used. The format is:
+
+ PreferredModuleName SecondBest ThirdBest ...
+
+ie. a space-separated list of perl module names. The default is:
+
+ DB_File GDBM_File NDBM_File SDBM_File
+
+=cut
+
+ if ( $key eq 'auto_whitelist_db_modules' ) {
+ $self->{auto_whitelist_db_modules} = $value; next;
}

=item bayes_auto_learn ( 0 | 1 ) (default: 1)

Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm (original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm Sat Feb 7 15:55:22 2004
@@ -55,8 +55,12 @@

my $path;

- my $dbm_module = Mail::SpamAssassin::Util::first_available_module
- (qw(DB_File GDBM_File NDBM_File SDBM_File));
+ my @order = split (' ', $main->{conf}->{auto_whitelist_db_modules});
+ my $dbm_module = Mail::SpamAssassin::Util::first_available_module (@order);
+ if (!$dbm_module) {
+ die "Cannot find a usable DB package from auto_whitelist_db_modules: ".
+ $main->{conf}->{auto_whitelist_db_modules}."\n";
+ }

my $umask = umask 0;
if(defined($main->{conf}->{auto_whitelist_path})) # if undef then don't worry -- empty hash!