You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2004/02/08 00:55:23 UTC

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!