Custom Config

Mariano Absatz mailscanner at LISTS.COM.AR
Tue Apr 27 22:13:48 IST 2004


Brian,

shouldn't you be putting a 
  my $dbh;
before all your SACustomCheck within the same file?

El 27 Apr 2004 a las 17:06, Webmaster escribió:

> That enables scanning for everyone.  We host multiple domains, and I
> wanted the admins of those domains to be able to disable scannng for their
> domain only, the information being pulled from a database.  I was able to
> resolve the problem though, the logging routine was killing it.  All is
> working as expected now...  If anyone wants to know:
> 
> Virus Scanning = &SACustomCheck
> Spam Checks = &SACustomCheck
> 
> 
> 
> Here are the functions for CustomConfig.pm
> 
> sub InitSACustomCheck {
>  return if defined $dbh;
> 
>  MailScanner::Log::InfoLog("Initializing database connection");
> 
>  $dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host",
>                      $db_user, $db_pass,
>                      {PrintError => 0});
> 
>  if (!$dbh) {
>   MailScanner::Log::WarnLog("Unable to initialize database connection:
> %s", $DBI::errstr);
>   return;
>  }
> 
>  MailScanner::Log::InfoLog("Finished initializing database connection");
> }
> 
> sub EndSACustomCheck {
>  $dbh->disconnect if defined $dbh;
>  MailScanner::Log::InfoLog("Disconnected from the database");
> }
> 
> sub SACustomCheck {
>   my($message) = @_;
> 
>   return unless $message;
> 
>   if(!$dbh->ping) {
>    undef $dbh;
>    MailScanner::Log::InfoLog("Database ping failure attempting to
> re-connect");
>    InitSACustomCheck();
>   }
> 
>   return unless defined $dbh;
> 
>   foreach (@{$message->{to}}) {
>           ($to, $domain)=split("\@", $_);
>           push(@domains, "domain='$domain'");
>   }
> 
>   $where=join(" OR ", @domains);
> 
>   my $sth = $dbh->prepare("SELECT value FROM custom_score WHERE
> opt='checks' AND ($where)");
>   $sth->execute();
> 
>   # was there any options returned, if not, defauly yes
>   if ($sth->rows == 0){
>           $checks=1;
>   }else{
>         # if any domain is set to yes, it gets scanned
>         while (my $ref = $sth->fetchrow_hashref()) {
>                 if ($ref->{'value'} eq "yes") {
>                         $checks=1;
>                 }
>         }
>   }
>   # otherwise, no
>   if ($checks != 1) {
>         $checks=0;
>   }
> 
>   return $checks;
> 
> }
> 
> 
> 
> Brian  :)
> 
> 
> 
> > Webmaster wrote:
> >> I am trying to do a custom function so each domain we host can have
> >> their
> >> own options.  I was able to get the "Required SpamAssassin Score" option
> >> to work properly, I get the domain from the to address, get that domains
> >> score from a database, and return it.  I tried to do the same thing with
> >> "Spam Checks", but it does not work, Ms seems to go into a loop.  I
> >> tried
> >> the return value as 1 or 0 as the CostomCinfig.pm file said, even tried
> >> returning "yes" or "no", but no luck.  Any ideas?  Some of our customers
> >> have asked that we do not scan their mail at all (go figure, paranoid
> >> people)
> >
> > Wouldn't this do that?
> >
> > # If you want to be able to switch scanning on/off for different users or
> > # different domains, set this to the filename of a ruleset.
> > # This can also be the filename of a ruleset.
> > Virus Scanning = yes
> >

--
Mariano Absatz
El Baby
----------------------------------------------------------
Those who cannot remember the past are doomed to buy Microsoft products.

-------------------------- MailScanner list ----------------------
To leave, send    leave mailscanner    to jiscmail at jiscmail.ac.uk
For further info about MailScanner, please see the Most Asked
Questions at    http://www.mailscanner.biz/maq/     and the archives
at    http://www.jiscmail.ac.uk/lists/mailscanner.html




More information about the MailScanner mailing list