summaryrefslogtreecommitdiffstats
path: root/usr/local/www/diag_backup.php
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2010-05-26 16:46:37 -0400
committerjim-p <jimp@pfsense.org>2010-05-26 16:47:15 -0400
commit2c9a4ed1b800dfa5ff285d65d05eabef889ec0dc (patch)
treef4551b5208bacf5b059c1dbf0c0bec6d44be657c /usr/local/www/diag_backup.php
parenta2fb9e4842412fb5405bcca89b280c3ac0f65e31 (diff)
downloadpfsense-2c9a4ed1b800dfa5ff285d65d05eabef889ec0dc.zip
pfsense-2c9a4ed1b800dfa5ff285d65d05eabef889ec0dc.tar.gz
Compress RRD backup data. Results are dramatic.
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 417624d..e2cbacb 100755
--- a/usr/local/www/diag_backup.php
+++ b/usr/local/www/diag_backup.php
@@ -230,7 +230,7 @@ if ($_POST) {
if($rrd_data) {
$data .= "\t\t<rrddatafile>\n";
$data .= "\t\t\t<filename>{$rrd}</filename>\n";
- $data .= "\t\t\t<data>" . base64_encode($rrd_data) . "</data>\n";
+ $data .= "\t\t\t<data>" . base64_encode(gzdeflate($rrd_data)) . "</data>\n";
$data .= "\t\t</rrddatafile>\n";
}
}
@@ -318,7 +318,16 @@ if ($_POST) {
if($config['rrddata']) {
foreach($config['rrddata']['rrddatafile'] as $rrd) {
$rrd_fd = fopen("{$g['vardb_path']}/rrd/{$rrd['filename']}", "w");
- fwrite($rrd_fd, base64_decode($rrd['data']));
+ $data = base64_decode($rrd['data']);
+ /* Try to decompress the data. */
+ $dcomp = @gzinflate($data);
+ if ($dcomp) {
+ /* If the decompression worked, write the decompressed data */
+ fwrite($rrd_fd, $dcomp);
+ } else {
+ /* If the decompression failed, it wasn't compressed, so write raw data */
+ fwrite($rrd_fd, $data);
+ }
fclose($rrd_fd);
}
unset($config['rrddata']);
OpenPOWER on IntegriCloud