return '/tmp/run_pman_admin_iptables-'.$db;
}
- function get($opt = '')
+ function get($opt = '', $opts = Array())
{
// monitor file
*/
//DB_DataObject::debugLevel(1);
- $p = DB_DataObject::Factory('Person');
+ $p = DB_DataObject::Factory('core_person');
$p->autoJoin();
$p->whereAdd("join_company_id_id.comptype = 'OWNER'");
$p->selectAdd();
max(event_when) + $interval as expires
");
- $e->person_table = DB_DataObject::factory('person')->tableName();
+ $e->person_table = DB_DataObject::factory('core_person')->tableName();
$e->whereAddIn('person_id', $peps, 'int');
$e->groupBy('ipaddr');
$e->whereAdd("event_when > NOW() - $interval");
require_once 'System.php';
//inet addr:202.67.151.28 Bcast:202.67.151.255 Mask:255.255.255.0
- $ifconfig = System::which('ifconfig');
+ $ifconfig = System::which('ifconfig','/sbin/ifconfig');
- if (!$ifconfig) {
+ if (!$ifconfig || !file_exists($ifconfig)) {
$this->jerr("ifconfig could not be found.");
}
function readChain($chain)
{
- require_once 'System.php';
-
- $iptables = System::which('iptables');
+ static $iptables;
- if (!$iptables) {
- $this->jerr("iptables could not be found.");
+ if (!$iptables) {
+ require_once 'System.php';
+
+ $iptables = System::which('iptables', '/sbin/iptables');
+
+ if (!$iptables || !file_exists($iptables)) {
+ $this->jerr("iptables could not be found.");
+ }
}
// this should have been set up already..
// in the base firewall code.
function updateTables()
{
-
- require_once 'System.php';
-
- $iptables = System::which('iptables');
+ static $iptables;
- if (!$iptables) {
- $this->jerr("iptables could not be found.");
+ if (!$iptables) {
+ require_once 'System.php';
+
+ $iptables = System::which('iptables', '/sbin/iptables');
+
+ if (!$iptables || !file_exists($iptables)) {
+ $this->jerr("iptables could not be found.");
+ }
}
// this should have been set up already..
// in the base firewall code.
// remove rules that need deleting..
foreach($remove as $ip => $r) {
- $this->exec("{$iptables} -d postgres {$r['num']} ");
+
+ $this->removeIp($ip);
+
}
}
+ function removeIp($ip)
+ {
+ static $iptables;
+
+ if (!$iptables) {
+ require_once 'System.php';
+
+ $iptables = System::which('iptables', '/sbin/iptables');
+
+ if (!$iptables || !file_exists($iptables)) {
+ $this->jerr("iptables could not be found.");
+ }
+ }
+ // we need to scan the list each time, as the order get's renumbered when we remove wone...
+ $ar = $this->readChain('postgres');
+ foreach($ar as $row) {
+ if ($row['target'] != 'ACCEPT') {
+ continue;
+ }
+
+ if ($row['source'] != $ip) {
+ continue;
+ }
+ $this->exec("{$iptables} -D postgres {$row['num']} ");
+ break;
+ }
+ }
+
+
function createBase()
{
- $iptables = System::which('iptables');
- if (!$iptables) {
+ require_once 'System.php';
+
+ $iptables = System::which('iptables', '/sbin/iptables');
+
+ if (!$iptables || !file_exists($iptables)) {
$this->jerr("iptables could not be found.");
}