diff options
author | sullrich <sullrich@pfsense.org> | 2009-11-27 16:17:03 -0500 |
---|---|---|
committer | sullrich <sullrich@pfsense.org> | 2009-11-27 16:17:03 -0500 |
commit | 4195c967cc25eefa2c1c5bc889788eacb4531fbd (patch) | |
tree | ebf1ec9c7e98ad4ca1624959734716530b77ce59 /usr/local/www/diag_backup.php | |
parent | 42bad812c49f4fa80e1e2a6445e26074b8e0b984 (diff) | |
download | pfsense-4195c967cc25eefa2c1c5bc889788eacb4531fbd.zip pfsense-4195c967cc25eefa2c1c5bc889788eacb4531fbd.tar.gz |
Correctly output only selected backup area when do not backup packages is selected. Resolves #168
Diffstat (limited to 'usr/local/www/diag_backup.php')
-rwxr-xr-x | usr/local/www/diag_backup.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/usr/local/www/diag_backup.php b/usr/local/www/diag_backup.php index a880a13..b3389b3 100755 --- a/usr/local/www/diag_backup.php +++ b/usr/local/www/diag_backup.php @@ -186,9 +186,18 @@ if ($_POST) { $data = ""; if($options == "nopackages") { + if(!$_POST['backuparea']) { + /* backup entire configuration */ + $data = file_get_contents("{$g['conf_path']}/config.xml"); + } else { + /* backup specific area of configuration */ + $data = backup_config_section($_POST['backuparea']); + $name = "{$_POST['backuparea']}-{$name}"; + } $sfn = "{$g['tmp_path']}/config.xml.nopkg"; - exec("sed '/<installedpackages>/,/<\/installedpackages>/d' /conf/config.xml > {$sfn}"); - $data = file_get_contents($sfn); + file_put_contents($sfn, $data); + exec("sed '/<installedpackages>/,/<\/installedpackages>/d' {$sfn} > {$sfn}-new"); + $data = file_get_contents($sfn . "-new"); } else { if(!$_POST['backuparea']) { /* backup entire configuration */ |