diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2007-04-21 20:03:05 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2007-04-21 20:03:05 +0000 |
commit | 3e1aaa572ca0ac4db8b93c751f3a5d0a9f266bda (patch) | |
tree | 5e9d4121338116ecb248402b753ffc279f2c0681 /etc/inc | |
parent | 7fb87dbe6951201bcd1d531e3f2d2063aa007682 (diff) | |
download | pfsense-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')
-rw-r--r-- | etc/inc/config.inc | 8 |
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 |