diff --git a/src/www/system_advanced_misc.php b/src/www/system_advanced_misc.php
index 10782c862..ab510aec8 100644
--- a/src/www/system_advanced_misc.php
+++ b/src/www/system_advanced_misc.php
@@ -38,6 +38,31 @@ require_once("pfsense-utils.inc");
require_once("services.inc");
require_once("interfaces.inc");
+function install_backup_cron_jobs()
+{
+ global $config;
+
+ /* XXX still not overly pretty */
+
+ if (!empty($config['rrdbackup'])) {
+ install_cron_job("/usr/local/etc/rc.backup_rrd", ($config['system']['rrdbackup'] > 0), $minute = "0", "*/{$config['system']['rrdbackup']}");
+ } else {
+ install_cron_job("/usr/local/etc/rc.backup_rrd", false, $minute = "0", "*/{$config['system']['rrdbackup']}");
+ }
+
+ if (!empty($config['dhcpbackup'])) {
+ install_cron_job("/usr/local/etc/rc.backup_dhcpleases", ($config['system']['dhcpbackup'] > 0), $minute = "0", "*/{$config['system']['dhcpbackup']}");
+ } else {
+ install_cron_job("/usr/local/etc/rc.backup_dhcpleases", false, $minute = "0", "*/{$config['system']['dhcpbackup']}");
+ }
+
+ if (!empty($config['netflowbackup'])) {
+ install_cron_job("/usr/local/etc/rc.backup_netflow", ($config['system']['netflowbackup'] > 0), $minute = "0", "*/{$config['system']['netflowbackup']}");
+ } else {
+ install_cron_job("/usr/local/etc/rc.backup_netflow", false, $minute = "0", "*/{$config['system']['netflowbackup']}");
+ }
+}
+
function crypto_modules()
{
$modules = array(
@@ -92,6 +117,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$pconfig['powerd_ac_mode'] = "hadp";
$pconfig['rrdbackup'] = !empty($config['system']['rrdbackup']) ? $config['system']['rrdbackup'] : null;
$pconfig['dhcpbackup'] = !empty($config['system']['dhcpbackup']) ? $config['system']['dhcpbackup'] : null;
+ $pconfig['netflowbackup'] = !empty($config['system']['netflowbackup']) ? $config['system']['netflowbackup'] : null;
if (!empty($config['system']['powerd_ac_mode'])) {
$pconfig['powerd_ac_mode'] = $config['system']['powerd_ac_mode'];
}
@@ -188,24 +214,28 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
}
if (!empty($pconfig['rrdbackup'])) {
- $config['system']['rrdbackup'] = $_POST['rrdbackup'];
- install_cron_job("/usr/local/etc/rc.backup_rrd", ($config['system']['rrdbackup'] > 0), $minute = "0", "*/{$config['system']['rrdbackup']}");
+ $config['system']['rrdbackup'] = $pconfig['rrdbackup'];
} elseif (isset($config['system']['rrdbackup'])) {
- install_cron_job("/usr/local/etc/rc.backup_rrd", false, $minute = "0", "*/{$config['system']['rrdbackup']}");
unset($config['system']['rrdbackup']);
}
+
if (!empty($pconfig['dhcpbackup'])) {
$config['system']['dhcpbackup'] = $pconfig['dhcpbackup'];
- install_cron_job("/usr/local/etc/rc.backup_dhcpleases", ($config['system']['dhcpbackup'] > 0), $minute = "0", "*/{$config['system']['dhcpbackup']}");
} elseif (isset($config['system']['dhcpbackup'])) {
- install_cron_job("/usr/local/etc/rc.backup_dhcpleases", false, $minute = "0", "*/{$config['system']['dhcpbackup']}");
unset($config['system']['dhcpbackup']);
}
+ if (!empty($pconfig['netflowbackup'])) {
+ $config['system']['netflowbackup'] = $pconfig['netflowbackup'];
+ } elseif (isset($config['system']['netflowbackup'])) {
+ unset($config['system']['netflowbackup']);
+ }
+
write_config();
$savemsg = get_std_save_message();
system_resolvconf_generate(true);
+ install_backup_cron_jobs();
filter_configure();
activate_powerd();
load_crypto_module();
@@ -471,7 +501,7 @@ include("head.inc");