")) {
$input_errors[] = "You have selected to restore the full configuration but we could not locate a pfsense tag.";
} else {
/* restore the entire configuration */
file_put_contents($_FILES['conffile']['tmp_name'], $data);
if (config_install($_FILES['conffile']['tmp_name']) == 0) {
/* this will be picked up by /index.php */
conf_mount_rw();
if($g['platform'] <> "cdrom")
touch("/needs_package_sync");
$reboot_needed = true;
$savemsg = "The configuration has been restored. The firewall is now rebooting.";
/* remove cache, we will force a config reboot */
if(file_exists("/tmp/config.cache"))
unlink("/tmp/config.cache");
$config = parse_config(true);
/* extract out rrd items, unset from $confgi when done */
if($config['rrddata']) {
foreach($config['rrddata']['rrddatafile'] as $rrd) {
$rrd_fd = fopen("{$g['vardb_path']}/rrd/{$rrd['filename']}", "w");
fwrite($rrd_fd, $rrd['data']);
fclose($rrd_fd);
}
}
unset($config['rrddata']);
if($m0n0wall_upgrade == true) {
if($config['system']['gateway'] <> "")
$config['interfaces']['wan']['gateway'] = $config['system']['gateway'];
unset($config['shaper']);
/* optional if list */
$ifdescrs = get_configured_interface_list(true, true);
/* remove special characters from interface descriptions */
if(is_array($ifdescrs))
foreach($ifdescrs as $iface)
$config['interfaces'][$iface]['descr'] = remove_bad_chars($config['interfaces'][$iface]['descr']);
unlink_if_exists("/tmp/config.cache");
write_config();
conf_mount_ro();
$savemsg = "The m0n0wall configuration has been restored and upgraded to pfSense.The firewall is now rebooting.";
$reboot_needed = true;
}
if(isset($config['captiveportal']['enable'])) {
/* for some reason ipfw doesn't init correctly except on bootup sequence */
$savemsg = "The configuration has been restored.
The firewall is now rebooting.";
$reboot_needed = true;
}
setup_serial_port();
if(is_interface_mismatch() == true) {
touch("/var/run/interface_mismatch_reboot_needed");
$reboot_needed = false;
header("Location: interfaces_assign.php");
exit;
}
} else {
$input_errors[] = "The configuration could not be restored.";
}
}
}
} else {
$input_errors[] = "The configuration could not be restored (file upload error).";
}
}
}
if ($mode == "reinstallpackages") {
header("Location: pkg_mgr_install.php?mode=reinstallall");
exit;
} else if ($mode == "restore_ver") {
$input_errors[] = "XXX - this feature may hose your config (do NOT backrev configs!) - billm";
if ($ver2restore <> "") {
$conf_file = "{$g['cf_conf_path']}/bak/config-" . strtotime($ver2restore) . ".xml";
if (config_install($conf_file) == 0) {
$reboot_needed = true;
$savemsg = "The configuration has been restored. The firewall is now rebooting.";
} else {
$input_errors[] = "The configuration could not be restored.";
}
} else {
$input_errors[] = "No version selected.";
}
}
}
}
$id = rand() . '.' . time();
$mth = ini_get('upload_progress_meter.store_method');
$dir = ini_get('upload_progress_meter.file.filename_template');
$pgtitle = array("Diagnostics","Backup/restore");
include("head.inc");
?>