summaryrefslogtreecommitdiffstats
path: root/etc/inc/config.inc
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2007-04-21 20:03:05 +0000
committerScott Ullrich <sullrich@pfsense.org>2007-04-21 20:03:05 +0000
commit3e1aaa572ca0ac4db8b93c751f3a5d0a9f266bda (patch)
tree5e9d4121338116ecb248402b753ffc279f2c0681 /etc/inc/config.inc
parent7fb87dbe6951201bcd1d531e3f2d2063aa007682 (diff)
downloadpfsense-3e1aaa572ca0ac4db8b93c751f3a5d0a9f266bda.zip
pfsense-3e1aaa572ca0ac4db8b93c751f3a5d0a9f266bda.tar.gz
xmlparse now returns -1 when a file is corrupt. Detect this situation during parse_config() and trigger a backup. Note to the user this occurance.
Diffstat (limited to 'etc/inc/config.inc')
-rw-r--r--etc/inc/config.inc8
1 files changed, 8 insertions, 0 deletions
diff --git a/etc/inc/config.inc b/etc/inc/config.inc
index fe6a2b1..b29b210 100644
--- a/etc/inc/config.inc
+++ b/etc/inc/config.inc
@@ -238,6 +238,13 @@ function parse_config($parse = false) {
log_error("Could not restore config.xml.");
}
$config = parse_xml_config($g['conf_path'] . '/config.xml', $g['xml_rootobj']);
+ if($config == "-1") {
+ $last_backup = discover_last_backup();
+ if ($last_backup)
+ restore_backup("/cf/conf/backup/{$last_backup}");
+ else
+ log_error(gettext("Could not restore config.xml."));
+ }
generate_config_cache($config);
}
if($g['booting']) echo ".";
@@ -294,6 +301,7 @@ function restore_backup($file) {
conf_mount_rw();
system("cp $file /cf/conf/config.xml");
}
+ log_error("pfSense is restoring the configuration $file");
}
/****f* config/parse_config_bootup
OpenPOWER on IntegriCloud