diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/spamd/spamd.inc | 16 | ||||
-rw-r--r-- | config/spamd/spamd_db.php | 72 | ||||
-rw-r--r-- | config/spamd/spamd_settings.xml | 2 |
3 files changed, 50 insertions, 40 deletions
diff --git a/config/spamd/spamd.inc b/config/spamd/spamd.inc index 0bd29bd8..e09b2b7f 100644 --- a/config/spamd/spamd.inc +++ b/config/spamd/spamd.inc @@ -34,6 +34,13 @@ if(!function_exists("filter_configure")) function sync_package_spamd() { global $config, $g; + $pf_version = substr(trim(file_get_contents("/etc/version")),0,3); + if ($pf_version < 2.2) { + $localpath = "/usr/local"; + } else { + $ARCH = php_uname("m"); + $localpath = "/usr/pbi/spamd-$ARCH/local"; + } conf_mount_rw(); config_lock(); @@ -130,8 +137,8 @@ function sync_package_spamd() { "fi\n" . "/usr/local/sbin/spamd-setup -d &\n" . "/sbin/pflogd &\n" . - "/usr/local/libexec/spamd {$greyparms}{$identifier}{$greylisting}{$maxcon}{$maxblack}{$window}{$replysmtperror} 127.0.0.1 &\n" . - "/usr/local/libexec/spamlogd\n"; + "$localpath/libexec/spamd {$greyparms}{$identifier}{$greylisting}{$maxcon}{$maxblack}{$window}{$replysmtperror} 127.0.0.1 &\n" . + "$localpath/libexec/spamlogd\n"; $stop = "/usr/bin/killall spamd-setup\n" . "/usr/bin/killall spamlogd\n" . "/usr/bin/killall spamd\n" . @@ -153,8 +160,9 @@ function sync_package_spamd() { log_error("Restart cron"); mwexec("killall -HUP cron"); log_error("Setting up spamd.conf symlink"); - mwexec("rm -f /usr/local/etc/spamd/spamd.conf"); - mwexec("ln -s /etc/spamd.conf /usr/local/etc/spamd/spamd.conf"); + unlink_if_exists("$localpath/etc/spamd/spamd.conf"); + symlink("/etc/spamd.conf", "$localpath/etc/spamd/spamd.conf"); + log_error("Stopping spamd"); mwexec("/usr/local/etc/rc.d/spamd.sh stop"); sleep(1); diff --git a/config/spamd/spamd_db.php b/config/spamd/spamd_db.php index c2df25d1..e1d004f7 100644 --- a/config/spamd/spamd_db.php +++ b/config/spamd/spamd_db.php @@ -30,6 +30,10 @@ require("guiconfig.inc"); +$pf_version=substr(trim(file_get_contents("/etc/version")),0,3); +if ($pf_version < 2.0) + $one_two = true; + if($_POST['filter']) $filter = $_POST['filter']; if($_POST['not']) @@ -39,6 +43,13 @@ if($_POST['limit']) else $limit = "25"; +if($_GET['spamtrapemail']) + $spamtrapemail = $_GET['spamtrapemail']; +if($_POST['spamtrapemail']) + $spamtrapemail = $_POST['spamtrapemail']; +if ($spamtrapemail) + $spamtrapemailarg = escapeshellarg($spamtrapemail); + /* handle AJAX operations */ if($_GET['action'] or $_POST['action']) { /* echo back buttonid so it can be turned @@ -46,60 +57,52 @@ if($_GET['action'] or $_POST['action']) { */ echo $_GET['buttonid'] . "|"; if($_GET['action']) - $action = escapeshellarg($_GET['action']); + $action = $_GET['action']; if($_POST['action']) - $action = escapeshellarg($_POST['action']); + $action = $_POST['action']; if($_GET['srcip']) $srcip = $_GET['srcip']; if($_POST['srcip']) $srcip = $_POST['srcip']; - if($_POST['toaddress']) - $toaddress = escapeshellarg($_POST['toaddress']); $srcip = str_replace("<","",$srcip); $srcip = str_replace(">","",$srcip); $srcip = str_replace(" ","",$srcip); // Make input safe $srcip = escapeshellarg($srcip); /* execute spamdb command */ - if($action == "'whitelist'") { - exec("/usr/local/sbin/spamdb -d {$srcip}"); + if($action == "whitelist") { exec("/usr/local/sbin/spamdb -d {$srcip} -T"); exec("/usr/local/sbin/spamdb -d {$srcip} -t"); 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}"); - } else if($action == "'delete'") { + } else if($action == "delete") { 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_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'") { + } else if($action == "trapped") { exec("/usr/local/sbin/spamdb -d {$srcip}"); - exec("/usr/local/sbin/spamdb -d {$srcip} -T"); - exec("/usr/local/sbin/spamdb -d {$srcip} -t"); - exec("/usr/local/sbin/spamdb -a {$srcip} -T"); - } else if($action == "'trapped'") { - exec("/usr/local/sbin/spamdb -T -d {$toaddress}"); - exec("/usr/local/sbin/spamdb -T -a '{$toaddress}'"); + exec("/usr/local/sbin/spamdb -d {$srcip}"); + exec("/usr/local/sbin/spamdb -d -t {$srcip}"); + exec("/usr/local/sbin/spamdb -a -t {$srcip}"); + } else if($action == "spamtrap") { + exec("/usr/local/sbin/spamdb -a -T {$spamtrapemailarg}"); } /* signal a reload for real time effect. */ mwexec("killall -HUP spamlogd"); exit; } -/* spam trap e-mail address */ -if($_POST['spamtrapemail'] <> "") { - $spamtrapemail = escapeshellarg($_POST['spamtrapemail']); - exec("/usr/local/sbin/spamdb -d {$spamtrapemail}"); - exec("/usr/local/sbin/spamdb -d -T {$spamtrapemail}"); - exec("/usr/local/sbin/spamdb -d -t {$spamtrapemail}"); - exec("/usr/local/sbin/spamdb -T -a '{$toaddress}'"); +/* spam trap e-mail address */ +if($spamtrapemail <> "") { + exec("spamdb -T -a {$spamtrapemailarg}"); mwexec("killall -HUP spamlogd"); - $savemsg = htmlentities($_POST['spamtrapemail']) . " added to spam trap database."; + $savemsg = htmlentities($spamtrapemail) . " added to spam trap database."; } if($_GET['getstatus'] <> "") { @@ -120,8 +123,7 @@ if($_GET['getstatus'] <> "") { /* spam trap e-mail address */ if($_GET['spamtrapemail'] <> "") { - $spamtrapemail = escapeshellarg($_GET['spamtrapemail']); - $status = exec("spamdb -T -a {$spamtrapemail}"); + $status = exec("spamdb -T -a {$spamtrapemailarg}"); mwexec("killall -HUP spamlogd"); if($status) echo $status; @@ -144,7 +146,7 @@ if($_GET['whitelist'] <> "") { function delete_from_blacklist($srcip) { config_lock(); - $blacklist = split("\n", file_get_contents("/var/db/blacklist.txt")); + $blacklist = explode("\n", file_get_contents("/var/db/blacklist.txt")); $fd = fopen("/var/db/blacklist.txt", "w"); foreach($blacklist as $bl) { if($bl <> "") @@ -159,7 +161,7 @@ function delete_from_blacklist($srcip) { function delete_from_whitelist($srcip) { config_lock(); - $whitelist = split("\n", file_get_contents("/var/db/whitelist.txt")); + $whitelist = explode("\n", file_get_contents("/var/db/whitelist.txt")); $fd = fopen("/var/db/whitelist.txt", "w"); foreach($whitelist as $wl) { if($wl <> "") @@ -200,7 +202,9 @@ $blacklist_items = $blacklist_items + $spamdb_black; ?> <body link="#000000" vlink="#000000" alink="#000000"> <?php include("fbegin.inc"); ?> +<?php if($one_two): ?> <p class="pgtitle"><?=$pgtitle?></font></p> +<?php endif; ?> <form action="spamd_db.php" method="post" name="iform"> <script src="/javascript/scriptaculous/prototype.js" type="text/javascript"></script> <script src="/javascript/scriptaculous/scriptaculous.js" type="text/javascript"></script> @@ -323,25 +327,23 @@ if (typeof getURL == 'undefined') { if($filter) { if($not) { $fd = fopen("/tmp/spamdb", "w"); - $cmd = "/usr/local/sbin/spamdb | grep -v \"" . escapeshellarg($filter) . "\" | tail -n {$limit}"; + $cmd = "/usr/local/sbin/spamdb | grep -v " . escapeshellarg($filter) . " | tail -n {$limit}"; fwrite($fd, $cmd); fclose($fd); - $pkgdb = split("\n", `$cmd`); + exec($cmd, $pkgdb); if(file_exists("/var/db/blacklist.txt")) { $cmd = "cat /var/db/blacklist.txt | grep -v \"" . escapeshellarg($filter) . "\" "; - $pkgdba = split("\n", `$cmd`); + exec($cmd, $pkgdba); foreach($pkgdba as $pkg) { $pkgdb[] = "TRAPPED|{$pkg}|1149324397"; } } } else { - $cmd = "/usr/local/sbin/spamdb | grep " . escapeshellarg($filter) . " | tail -n {$limit}"; - - $pkgdb = split("\n", `$cmd`); + exec($cmd, $pkgdb); if(file_exists("/var/db/blacklist.txt")) { $cmd = "cat /var/db/blacklist.txt | grep " . escapeshellarg($filter); - $pkgdba = split("\n", `$cmd`); + exec($cmd, $pkgdba); foreach($pkgdba as $pkg) { $pkgdb[] = "TRAPPED|{$pkg}|1149324397"; } @@ -349,7 +351,7 @@ if (typeof getURL == 'undefined') { } } } else { - $pkgdb = split("\n", `/usr/local/sbin/spamdb | tail -n {$limit}`); + exec("/usr/local/sbin/spamdb | tail -n {$limit}", $pkgdb); } $rows = 0; $lastseenip = ""; @@ -361,7 +363,7 @@ if (typeof getURL == 'undefined') { $dontdisplay = false; if(!$pkgdb_row) continue; - $pkgdb_split = split("\|", $pkgdb_row); + $pkgdb_split = explode("|", $pkgdb_row); /* diff --git a/config/spamd/spamd_settings.xml b/config/spamd/spamd_settings.xml index 7ed4c572..3fdab415 100644 --- a/config/spamd/spamd_settings.xml +++ b/config/spamd/spamd_settings.xml @@ -43,7 +43,7 @@ <faq>Currently there are no FAQ items provided.</faq> <name>spamdsettings</name> <version>1.1.1</version> - <title>SpamD Settings</title> + <title>SpamD: Settings</title> <aftersaveredirect>pkg_edit.php?xml=spamd_settings.xml&id=0</aftersaveredirect> <include_file>/usr/local/pkg/spamd.inc</include_file> <!-- Menu is where this packages menu will appear --> |