aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/spamd_db.php55
-rw-r--r--packages/spamd_db_ext.php30
2 files changed, 37 insertions, 48 deletions
diff --git a/packages/spamd_db.php b/packages/spamd_db.php
index dd10aaad..7b138877 100644
--- a/packages/spamd_db.php
+++ b/packages/spamd_db.php
@@ -60,7 +60,7 @@ if($_GET['action'] or $_POST['action']) {
exec("/usr/local/sbin/spamdb -d {$srcip}");
exec("/usr/local/sbin/spamdb -d \"<{$srcip}>\" -T");
exec("/usr/local/sbin/spamdb -d \"<{$srcip}>\" -t");
- delete_from_spamd_bl($srcip);
+ delete_from_blacklist($srcip);
mwexec("/sbin/pfctl -q -t blacklist -T replace -f /var/db/blacklist.txt");
exec("echo spamdb -a {$srcip} > /tmp/tmp");
exec("/usr/local/sbin/spamdb -a {$srcip}");
@@ -68,7 +68,7 @@ if($_GET['action'] or $_POST['action']) {
exec("/usr/local/sbin/spamdb -d {$srcip}");
exec("/usr/local/sbin/spamdb -d \"<{$srcip}>\" -T");
exec("/usr/local/sbin/spamdb -d \"<{$srcip}>\" -t");
- delete_from_spamd_bl($srcip);
+ delete_from_blacklist($srcip);
mwexec("/sbin/pfctl -q -t spamd -T delete $srcip");
mwexec("/sbin/pfctl -q -t blacklist -T replace -f /var/db/blacklist.txt");
} else if($action == "spamtrap") {
@@ -112,27 +112,6 @@ if($_GET['getstatus'] <> "") {
exit;
}
-function delete_from_spamd_bl($ip) {
- config_lock();
- if(!file_exists("/var/db/blacklist.txt"))
- return;
- $blacklist = file("/var/db/blacklist.txt");
- $new_blacklist = array();
- foreach($blacklist as $bl) {
- if(stristr($bl, $ip)) {
- /* don't add item */
- } else {
- $new_blacklist[] = $bl;
- }
- }
- $fd = fopen("/var/db/blacklist.txt", "w");
- foreach($new_blacklist as $bl)
- fwrite($fd, $bl . "\n");
- flose($fd);
- mwexec("/sbin/pfctl -q -t blacklist -T replace -f /var/db/blacklist.txt");
- config_unlock();
-}
-
/* spam trap e-mail address */
if($_GET['spamtrapemail'] <> "") {
$status = exec("spamdb -T -a \"<{$_GET['spamtrapemail']}>\"");
@@ -156,6 +135,21 @@ if($_GET['whitelist'] <> "") {
}
+function delete_from_blacklist($srcip) {
+ config_lock();
+ $blacklist = split("\n", file_get_contents("/var/db/blacklist.txt"));
+ $fd = fopen("/var/db/blacklist.txt", "w");
+ foreach($blacklist as $bl) {
+ if($bl <> "")
+ if(!stristr($bl, $srcip))
+ fwrite($fd, "{$bl}\n");
+ }
+ fclose($fd);
+ mwexec("/sbin/pfctl -q -t spamd -T delete $srcip");
+ mwexec("/sbin/pfctl -q -t blacklist -T replace -f /var/db/blacklist.txt");
+ config_unlock();
+}
+
$pgtitle = "SpamD: Database";
include("head.inc");
@@ -288,9 +282,24 @@ if (typeof getURL == 'undefined') {
fwrite($fd, $cmd);
fclose($fd);
$pkgdb = split("\n", `$cmd`);
+ if(file_exists("/var/db/blacklist.txt")) {
+ $cmd = "cat /var/db/blacklist.txt | grep -v \"" . $filter . "\" ";
+ $pkgdba = split("\n", `$cmd`);
+ foreach($pkgdba as $pkg) {
+ $pkgdb[] = "TRAPPED|{$pkg}|1149324397";
+ }
+ }
} else {
$cmd = "/usr/local/sbin/spamdb | grep \"{$filter}\" | tail -n {$limit}";
$pkgdb = split("\n", `$cmd`);
+ if(file_exists("/var/db/blacklist.txt")) {
+ $cmd = "cat /var/db/blacklist.txt | grep \"{$filter}\" ";
+ $pkgdba = split("\n", `$cmd`);
+ foreach($pkgdba as $pkg) {
+ $pkgdb[] = "TRAPPED|{$pkg}|1149324397";
+ }
+ echo "<!-- $pkgdb -->";
+ }
}
} else {
$pkgdb = split("\n", `/usr/local/sbin/spamdb | tail -n {$limit}`);
diff --git a/packages/spamd_db_ext.php b/packages/spamd_db_ext.php
index ae6c51fb..b7d30589 100644
--- a/packages/spamd_db_ext.php
+++ b/packages/spamd_db_ext.php
@@ -73,7 +73,7 @@ if($_GET['action'] or $_POST['action']) {
usleep(100);
exec("/usr/local/sbin/spamdb -a {$srcip}");
mwexec("/sbin/pfctl -q -t blacklist -T replace -f /var/db/blacklist.txt");
- delete_from_spamd_bl($srcip);
+ delete_from_blacklist($srcip);
log_error("spamd: {$srcip} has been whitelisted by {$_SERVER['REMOTE_ADDR']} {$loginname}");
hup_spamd();
exit;
@@ -83,7 +83,7 @@ if($_GET['action'] or $_POST['action']) {
hup_spamd();
mwexec("/sbin/pfctl -q -t spamd -T delete $srcip");
mwexec("/sbin/pfctl -q -t blacklist -T replace -f /var/db/blacklist.txt");
- delete_from_spamd_bl($srcip);
+ delete_from_blacklist($srcip);
log_error("spamd: {$srcip} has been deleted by {$_SERVER['REMOTE_ADDR']} {$loginname}");
exit;
} else if($action == "spamtrap") {
@@ -156,27 +156,6 @@ if($_GET['whitelist'] <> "") {
exit;
}
-function delete_from_spamd_bl($ip) {
- config_lock();
- if(!file_exists("/var/db/blacklist.txt"))
- return;
- $blacklist = file("/var/db/blacklist.txt");
- $new_blacklist = array();
- foreach($blacklist as $bl) {
- if(stristr($bl, $ip)) {
- /* don't add item */
- } else {
- $new_blacklist[] = $bl;
- }
- }
- $fd = fopen("/var/db/blacklist.txt", "w");
- foreach($new_blacklist as $bl)
- fwrite($fd, $bl . "\n");
- flose($fd);
- mwexec("/sbin/pfctl -q -t blacklist -T replace -f /var/db/blacklist.txt");
- config_unlock();
-}
-
function delete_from_spamd_db($srcip) {
config_lock();
$fd = fopen("/tmp/execcmds", "w");
@@ -216,8 +195,9 @@ function delete_from_blacklist($srcip) {
$blacklist = split("\n", file_get_contents("/var/db/blacklist.txt"));
$fd = fopen("/var/db/blacklist.txt", "w");
foreach($blacklist as $bl) {
- if($blacklist <> $srcip)
- fwrite($fd, "{$srcip}\n");
+ if($bl <> "")
+ if(!stristr($bl, $srcip))
+ fwrite($fd, "{$bl}\n");
}
fclose($fd);
mwexec("/sbin/pfctl -q -t spamd -T delete $srcip");