summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/inc/filter.inc6
-rw-r--r--etc/inc/pfsense-utils.inc34
2 files changed, 37 insertions, 3 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index 9256838..0b2cd1b 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -271,10 +271,10 @@ function filter_configure_sync() {
/* if time based rules are enabled then swap in the set */
if($time_based_rules == true) {
- $status = intval(`ps awux | grep -v grep | grep minicron | grep filter_configure_sync | wc -l | awk '{ print $1 }'`);
- if($status == "0")
- exec("/usr/local/bin/minicron 900 /var/run/filter_configure_sync_minicron.pid /etc/rc.filter_configure_sync");
+ tdr_install_cron(true);
tdr_install_set();
+ } else {
+ tdr_install_cron(false);
}
/*
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc
index 8b97ed9..88019d1 100644
--- a/etc/inc/pfsense-utils.inc
+++ b/etc/inc/pfsense-utils.inc
@@ -37,6 +37,40 @@ function get_tmp_file() {
return "/tmp/tmp-" . time();
}
+function tdr_install_cron($should_install) {
+ global $config;
+ $is_installed = false;
+ foreach($config['cron']['item'] as $item) {
+ $x=0;
+ if(strstr($item['command'], "filter_configure_sync.sh")) {
+ $is_installed = true;
+ $x++;
+ }
+ }
+ switch($should_install) {
+ case true:
+ if(!$is_installed) {
+ $cron_item = array();
+ $cron_item['minute'] = "0,15,30,45";
+ $cron_item['hour'] = "*";
+ $cron_item['mday'] = "*";
+ $cron_item['month'] = "*";
+ $cron_item['wday'] = "*";
+ $cron_item['who'] = "root";
+ $cron_item['command'] = "/etc/rc.filter_configure_sync.sh";
+ $config['cron']['item'][] = $cron_item;
+ write_config("Installed 15 minute filter reload for Time Based Rules");
+ configure_cron();
+ }
+ break;
+ case false:
+ unset($config['cron']['item'][$x]);
+ write_config();
+ configure_cron();
+ break;
+ }
+}
+
/****f* pfsense-utils/tdr_create_ipfw_rule
* NAME
* tdr_create_ipfw_rule
OpenPOWER on IntegriCloud