View | Details | Raw Unified
Collapse All | Expand All

(-) assp_patched/ASSP/assp.pl (-30 / +30 lines)
 Lines 1771-1778    Link Here 
  -d "/var/lib/assp/$correctedspam" or mkdir "/var/lib/assp/$correctedspam",0700;
  -d "/var/lib/assp/$correctedspam" or mkdir "/var/lib/assp/$correctedspam",0700;
  -d "/var/lib/assp/$correctednotspam" or mkdir "/var/lib/assp/$correctednotspam",0700;
  -d "/var/lib/assp/$correctednotspam" or mkdir "/var/lib/assp/$correctednotspam",0700;
  my $pbdir = $1 if $pbdb=~/(.*)\/.*/;
  my $pbdir = $1 if $pbdb=~/(.*)\/.*/;
  mkdir "$base/$pbdir",0700 if $pbdir;
  mkdir "/var/lib/assp/$pbdir",0700 if $pbdir;
  -d "/etc/assp/notes" or mkdir "$base/notes",0770;
  -d "/etc/assp/notes" or mkdir "/var/lib/assp/notes",0770;
  if ( !-e "/etc/assp/reports/whitereport.txt") {
  if ( !-e "/etc/assp/reports/whitereport.txt") {
    -d "/etc/assp/reports" or mkdir "/etc/assp/reports",0770;
    -d "/etc/assp/reports" or mkdir "/etc/assp/reports",0770;
    copy("/usr/share/assp/whitereport.txt", "/etc/assp/reports/whitereport.txt");
    copy("/usr/share/assp/whitereport.txt", "/etc/assp/reports/whitereport.txt");
 Lines 1786-1796    Link Here 
# put this after chroot so the paths don't change
# put this after chroot so the paths don't change
  $SpamdbObject=tie %Spamdb,orderedtie,"$base/$spamdb" if $spamdb;
  $SpamdbObject=tie %Spamdb,orderedtie,"/var/lib/assp/$spamdb" if $spamdb;
  mlog(0,"warning: Bayesian spam database is small or empty: '$base/$spamdb'") if $spamdb && -s "$base/$spamdb" < 10000;
  mlog(0,"warning: Bayesian spam database is small or empty: '/var/lib/assp/$spamdb'") if $spamdb && -s "/var/lib/assp/$spamdb" < 10000;
  $HeloBlackObject=tie %HeloBlack,orderedtie,"$base/$spamdb.helo" if $spamdb;
  $HeloBlackObject=tie %HeloBlack,orderedtie,"/var/lib/assp/$spamdb.helo" if $spamdb;
  $DnsblObject=tie %Dnsbl,orderedtie,"$base/$dnsbl" if $dnsbl;
  $DnsblObject=tie %Dnsbl,orderedtie,"/var/lib/assp/$dnsbl" if $dnsbl;
  mlog(0,"warning: DNS blacklist database is small or empty: '$base/$dnsbl'") if $dnsbl && -s "$base/$dnsbl" < 10000;
  mlog(0,"warning: DNS blacklist database is small or empty: '/var/lib/assp/$dnsbl'") if $dnsbl && -s "/var/lib/assp/$dnsbl" < 10000;
  if ($CanUseTieRDBM && $whitelistdb =~ /mysql/) {
  if ($CanUseTieRDBM && $whitelistdb =~ /mysql/) {
  eval {
  eval {
    $WhitelistObject=tie %Whitelist,'Tie::RDBM',"dbi:mysql:database=$mydb;host=$myhost",{user=>"$myuser",password=>"$mypassword",table=>'whitelist',create=>1};};
    $WhitelistObject=tie %Whitelist,'Tie::RDBM',"dbi:mysql:database=$mydb;host=$myhost",{user=>"$myuser",password=>"$mypassword",table=>'whitelist',create=>1};};
 Lines 1800-1807    Link Here 
    $whitelistdb ="whitelist";
    $whitelistdb ="whitelist";
    }
    }
  } else {
  } else {
    $WhitelistObject=tie %Whitelist,orderedtie,"$base/$whitelistdb";
    $WhitelistObject=tie %Whitelist,orderedtie,"/var/lib/assp/$whitelistdb";
    mlog(0,"warning: whitelist is small or empty: '$base/$whitelistdb' (ignore if this is a new install)") if $whitelistdb && -s "$base/$whitelistdb" < 1000;
    mlog(0,"warning: whitelist is small or empty: '/var/lib/assp/$whitelistdb' (ignore if this is a new install)") if $whitelistdb && -s "/var/lib/assp/$whitelistdb" < 1000;
  }
  }
  if ($CanUseTieRDBM && $redlistdb =~ /mysql/) {
  if ($CanUseTieRDBM && $redlistdb =~ /mysql/) {
 Lines 1813-1826    Link Here 
    $redlistdb ="redlist";
    $redlistdb ="redlist";
    }
    }
  } else {
  } else {
    $RedlistObject=tie %Redlist,orderedtie,"$base/$redlistdb";
    $RedlistObject=tie %Redlist,orderedtie,"/var/lib/assp/$redlistdb";
  }
  }
  $GriplistObject=tie %Griplist,orderedtie,"$base/$griplist" if $griplist;
  $GriplistObject=tie %Griplist,orderedtie,"/var/lib/assp/$griplist" if $griplist;
  $PBWhiteObject=tie %PBWhite,orderedtie,"$base/$pbdb.white.db";
  $PBWhiteObject=tie %PBWhite,orderedtie,"/var/lib/assp/$pbdb.white.db";
  $PBBlackObject=tie %PBBlack,orderedtie,"$base/$pbdb.black.db";
  $PBBlackObject=tie %PBBlack,orderedtie,"/var/lib/assp/$pbdb.black.db";
  $RBLCacheObject=tie %RBLCache,orderedtie,"$base/$pbdb.rbl.db";
  $RBLCacheObject=tie %RBLCache,orderedtie,"/var/lib/assp/$pbdb.rbl.db";
  $URIBLCacheObject=tie %URIBLCache,orderedtie,"$base/$pbdb.uribl.db";
  $URIBLCacheObject=tie %URIBLCache,orderedtie,"/var/lib/assp/$pbdb.uribl.db";
  if ($CanUseTieRDBM && $delaydb =~ /mysql/) {
  if ($CanUseTieRDBM && $delaydb =~ /mysql/) {
  eval {
  eval {
   $DelayWhiteObject=tie %DelayWhite,'Tie::RDBM',"dbi:mysql:database=$mydb;host=$myhost",{user=>"$myuser",password=>"$mypassword",table=>'delaywhitedb',create=>1};
   $DelayWhiteObject=tie %DelayWhite,'Tie::RDBM',"dbi:mysql:database=$mydb;host=$myhost",{user=>"$myuser",password=>"$mypassword",table=>'delaywhitedb',create=>1};
 Lines 1832-1839    Link Here 
    }
    }
   
   
  } else {
  } else {
    $DelayObject=tie %Delay,orderedtie,"$base/$delaydb";
    $DelayObject=tie %Delay,orderedtie,"/var/lib/assp/$delaydb";
    $DelayWhiteObject=tie %DelayWhite,orderedtie,"$base/$delaydb.white";
    $DelayWhiteObject=tie %DelayWhite,orderedtie,"/var/lib/assp/$delaydb.white";
  }
  }
 Lines 7535-7541    Link Here 
sub downloadGrip {
sub downloadGrip {
 # let's check if we really need to
 # let's check if we really need to
 my @s=stat("$base/$griplist");
 my @s=stat("/var/lib/assp/$griplist");
 my $mtime=$s[9];
 my $mtime=$s[9];
 if(time - $mtime< 12*3600) {
 if(time - $mtime< 12*3600) {
  $NextGriplistDownload=$mtime + 12*3600;
  $NextGriplistDownload=$mtime + 12*3600;
 Lines 7562-7568    Link Here 
  $SocketCalls{$s}=\&GripTraffic;
  $SocketCalls{$s}=\&GripTraffic;
  $readable->add($s);
  $readable->add($s);
  $NextGriplistDownload=time+3600*12;
  $NextGriplistDownload=time+3600*12;
  open(GRIPTEMP,">$base/$griplist.tmp");
  open(GRIPTEMP,">/var/lib/assp/$griplist.tmp");
  binmode(GRIPTEMP);
  binmode(GRIPTEMP);
  $GriplistLen=0;
  $GriplistLen=0;
 } else {
 } else {
 Lines 7590-7602    Link Here 
   $GriplistLen-=length($buf);
   $GriplistLen-=length($buf);
   if(! $GriplistLen) {
   if(! $GriplistLen) {
    close GRIPTEMP;
    close GRIPTEMP;
    unlink("$base/$griplist");
    unlink("/var/lib/assp/$griplist");
    rename("$base/$griplist.tmp","$base/$griplist");
    rename("/var/lib/assp/$griplist.tmp","/var/lib/assp/$griplist");
    mlog(0,"griplist download complete") if $MaintenanceLog;
    mlog(0,"griplist download complete") if $MaintenanceLog;
    if($GriplistObject) {
    if($GriplistObject) {
     $GriplistObject->resetCache();
     $GriplistObject->resetCache();
    } else {
    } else {
     $GriplistObject=tie %Griplist,orderedtie,"$base/$griplist" if $griplist;
     $GriplistObject=tie %Griplist,orderedtie,"/var/lib/assp/$griplist" if $griplist;
    }
    }
    $readable->remove($fh);
    $readable->remove($fh);
    $fh->close;
    $fh->close;
 Lines 10711-10718    Link Here 
sub cleanBlackPB {
sub cleanBlackPB {
if ($PenaltyExpiration==0) {
if ($PenaltyExpiration==0) {
$PBBlackObject->flush() if $PBBlackObject;
$PBBlackObject->flush() if $PBBlackObject;
unlink "$base/$pbdb.black.db.bak";
unlink "/var/lib/assp/$pbdb.black.db.bak";
rename("$base/$pbdb.black.db","$base/$pbdb.black.db.bak");
rename("/var/lib/assp/$pbdb.black.db","/var/lib/assp/$pbdb.black.db.bak");
$PBBlackObject->DESTROY() if $PBBlackObject;
$PBBlackObject->DESTROY() if $PBBlackObject;
return;
return;
 Lines 10752-10759    Link Here 
}
}
if ($ips_before==0) {
if ($ips_before==0) {
$PBBlackObject->flush() if $PBBlackObject;
$PBBlackObject->flush() if $PBBlackObject;
unlink "$base/$pbdb.black.db.bak";
unlink "/var/lib/assp/$pbdb.black.db.bak";
rename("$base/$pbdb.black.db","$base/$pbdb.black.db.bak");
rename("/var/lib/assp/$pbdb.black.db","/var/lib/assp/$pbdb.black.db.bak");
$PBBlackObject->DESTROY() if $PBBlackObject;}
$PBBlackObject->DESTROY() if $PBBlackObject;}
mlog(0,"PB: cleaning black finished; IPs before=$ips_before, deleted=$ips_deleted") if $DoPenalty;
mlog(0,"PB: cleaning black finished; IPs before=$ips_before, deleted=$ips_deleted") if $DoPenalty;
MainLoop2();
MainLoop2();
 Lines 10794-10801    Link Here 
mlog(0,"RBLCache: cleaning cache finished; IPs before=$ips_before, deleted=$ips_deleted") if  $MaintenanceLog;
mlog(0,"RBLCache: cleaning cache finished; IPs before=$ips_before, deleted=$ips_deleted") if  $MaintenanceLog;
if ($ips_before==0 || ($ips_before>=5000 && $ips_deleted==0)) {
if ($ips_before==0 || ($ips_before>=5000 && $ips_deleted==0)) {
$RBLCacheObject->flush() ;
$RBLCacheObject->flush() ;
unlink "$base/$pbdb.rbl.db.bak";
unlink "/var/lib/assp/$pbdb.rbl.db.bak";
rename("$base/$pbdb.rbl.db","$base/$pbdb.rbl.db.bak");
rename("/var/lib/assp/$pbdb.rbl.db","/var/lib/assp/$pbdb.rbl.db.bak");
$RBLCacheObject->DESTROY();
$RBLCacheObject->DESTROY();
$RBLCache{""}="" if $ips_before==0;
$RBLCache{""}="" if $ips_before==0;
}}
}}
 Lines 10813-10820    Link Here 
mlog(0,"URIBLCache: cleaning cache finished; Domains before=$domains_before, deleted=$domains_deleted") if  $MaintenanceLog;
mlog(0,"URIBLCache: cleaning cache finished; Domains before=$domains_before, deleted=$domains_deleted") if  $MaintenanceLog;
if ($domains_before==0 || ($domains_before>=5000 && $domains_deleted==0)) {
if ($domains_before==0 || ($domains_before>=5000 && $domains_deleted==0)) {
$URIBLCacheObject->flush() ;
$URIBLCacheObject->flush() ;
unlink "$base/$pbdb.uribl.db.bak";
unlink "/var/lib/assp/$pbdb.uribl.db.bak";
rename("$base/$pbdb.uribl.db","$base/$pbdb.rbl.db.bak");
rename("/var/lib/assp/$pbdb.uribl.db","/var/lib/assp/$pbdb.rbl.db.bak");
$URIBLCacheObject->DESTROY();
$URIBLCacheObject->DESTROY();
$URIBLCache{""}="" if $domains_before==0;
$URIBLCache{""}="" if $domains_before==0;
}}
}}