aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/spamd_db_ext.php57
1 files changed, 32 insertions, 25 deletions
diff --git a/packages/spamd_db_ext.php b/packages/spamd_db_ext.php
index 9463ac8b..c08099ab 100644
--- a/packages/spamd_db_ext.php
+++ b/packages/spamd_db_ext.php
@@ -57,45 +57,36 @@ if($_GET['action'] or $_POST['action']) {
* back off when request is completed.
*/
if($_GET['action'])
- $action = $_GET['action'];
+ $action = trim($_GET['action']);
if($_POST['action'])
- $action = $_POST['action'];
+ $action = trim($_POST['action']);
if($_GET['srcip'])
- $srcip = $_GET['srcip'];
+ $srcip = trim($_GET['srcip']);
if($_POST['srcip'])
- $srcip = $_POST['srcip'];
+ $srcip = trim($_POST['srcip']);
/* execute spamdb command */
if($action == "whitelist") {
+ delete_from_spamd_db($srcip);
+ usleep(100);
exec("/usr/local/sbin/spamdb -a {$srcip}");
+ mwexec("/usr/bin/killall -HUP spamlogd");
exit;
} else if($action == "delete") {
- $fd = fopen("/tmp/execcmds", "w");
- config_lock();
- fwrite($fd, "#!/bin/sh\n");
- fwrite($fd, "/usr/local/sbin/spamdb -d {$srcip}\n");
- fwrite($fd, "/usr/local/sbin/spamdb -T -d \"<{$srcip}>\"\n");
- fwrite($fd, "/usr/local/sbin/spamdb -t -d \"<{$srcip}>\"\n");
- fwrite($fd, "/usr/local/sbin/spamdb | grep {$srcip}\n");
- fclose($fd);
- exec("chmod a+rx /tmp/execcmds");
- system("/bin/sh /tmp/execcmds");
- remove_from_blacklist($srcip);
- config_unlock();
+ delete_from_spamd_db($srcip);
+ usleep(100);
exit;
} else if($action == "spamtrap") {
- exec("/usr/local/sbin/spamdb -d {$srcip}");
- exec("/usr/local/sbin/spamdb -d -T \"<{$srcip}>\"");
- exec("/usr/local/sbin/spamdb -d -t \"<{$srcip}>\"");
- exec("/usr/local/sbin/spamdb -a {$srcip} -T");
+ delete_from_spamd_db($srcip);
+ usleep(100);
+ exec("/usr/local/sbin/spamdb -a \"<{$srcip}>\" -T");
+ mwexec("/usr/bin/killall -HUP spamlogd");
exit;
} else if($action == "trapped") {
- exec("/usr/local/sbin/spamdb -d {$srcip}");
- exec("/usr/local/sbin/spamdb -d -T \"<{$srcip}>\"");
- exec("/usr/local/sbin/spamdb -d -t \"<{$srcip}>\"");
+ delete_from_spamd_db($srcip);
+ usleep(100);
exec("/usr/local/sbin/spamdb -a {$srcip} -t");
- config_lock();
+ mwexec("/usr/bin/killall -HUP spamlogd");
add_to_blacklist($srcip);
- config_unlock();
exit;
}
/* signal a reload for real time effect. */
@@ -151,6 +142,22 @@ if($_GET['whitelist'] <> "") {
exit;
}
+function delete_from_spamd_db($srcip) {
+ config_lock();
+ $fd = fopen("/tmp/execcmds", "w");
+ fwrite($fd, "#!/bin/sh\n");
+ fwrite($fd, "/usr/local/sbin/spamdb -d {$srcip}\n");
+ fwrite($fd, "/usr/local/sbin/spamdb -d {$srcip} -T\n");
+ fwrite($fd, "/usr/local/sbin/spamdb -d {$srcip} -t\n");
+ fwrite($fd, "/usr/local/sbin/spamdb -d \"<{$srcip}>\" -t\n");
+ fwrite($fd, "/usr/local/sbin/spamdb -d \"<{$srcip}>\" -T\n");
+ fclose($fd);
+ exec("/bin/chmod a+rx /tmp/execcmds");
+ system("/bin/sh /tmp/execcmds");
+ mwexec("/usr/bin/killall -HUP spamlogd");
+ config_unlock();
+}
+
function basic_auth_prompt(){
header("WWW-Authenticate: Basic realm=\".\"");
header("HTTP/1.0 401 Unauthorized");