diff options
author | Vinicius Coque <vinicius.coque@bluepex.com> | 2011-04-15 13:38:13 -0300 |
---|---|---|
committer | Vinicius Coque <vinicius.coque@bluepex.com> | 2011-04-15 13:38:13 -0300 |
commit | a51493d1981175048bdccce51f6b4ad6720da679 (patch) | |
tree | 0c4afae78c022380e5f4cbb9397859761f46d708 /etc/inc/config.lib.inc | |
parent | f599d893fff3d78f44068dc3ba238046d933ddb1 (diff) | |
parent | 7b2fdeb3c5d4fecc23ce2f9a7e1fa1a4c3af63be (diff) | |
download | pfsense-a51493d1981175048bdccce51f6b4ad6720da679.zip pfsense-a51493d1981175048bdccce51f6b4ad6720da679.tar.gz |
Merge remote-tracking branch 'mainline/master' into inc
Conflicts:
etc/inc/gwlb.inc
Diffstat (limited to 'etc/inc/config.lib.inc')
-rw-r--r-- | etc/inc/config.lib.inc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/etc/inc/config.lib.inc b/etc/inc/config.lib.inc index 5b84cfa..7232d14 100644 --- a/etc/inc/config.lib.inc +++ b/etc/inc/config.lib.inc @@ -534,10 +534,17 @@ function write_config($desc="Unknown", $backup = true) { /* NOTE: We assume that the file can be parsed since we wrote it. */ $config = parse_xml_config("{$g['conf_path']}/config.xml", $g['xml_rootobj']); if ($config == -1) { + copy("{$g['conf_path']}/config.xml", "{$g['conf_path']}/config.xml.bad"); $last_backup = discover_last_backup(); - if ($last_backup) + if ($last_backup) { restore_backup("/cf/conf/backup/{$last_backup}"); - else + $config = parse_xml_config("{$g['conf_path']}/config.xml", $g['xml_rootobj']); + if ($g['booting']) { + echo "\n\n ************** WARNING **************"; + echo "\n\n Configuration could not be validated. A previous configuration was restored. \n"; + echo "\n The failed configuration file has been saved as {$g['conf_path']}/config.xml.bad} \n\n"; + } + } else log_error(gettext("Could not restore config.xml.")); } else generate_config_cache($config); |