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");
@@ -489,7 +519,25 @@ include("head.inc"); endfor; ?> + + + + + + + @@ -503,7 +551,7 @@ include("head.inc");