summaryrefslogtreecommitdiffstats
path: root/usr/local/www/diag_backup.php
diff options
context:
space:
mode:
authorsullrich <sullrich@pfsense.org>2009-11-27 16:17:03 -0500
committersullrich <sullrich@pfsense.org>2009-11-27 16:17:03 -0500
commit4195c967cc25eefa2c1c5bc889788eacb4531fbd (patch)
treeebf1ec9c7e98ad4ca1624959734716530b77ce59 /usr/local/www/diag_backup.php
parent42bad812c49f4fa80e1e2a6445e26074b8e0b984 (diff)
downloadpfsense-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-xusr/local/www/diag_backup.php13
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 */
OpenPOWER on IntegriCloud