--- a/bin/imager.save Tue Aug 16 11:44:32 2011 +0200
+++ b/bin/imager.save Tue Aug 16 14:12:28 2011 +0200
@@ -148,8 +148,6 @@
my ($file, $ext, $cs);
$file = $cs = md5_hex($buffer);
$file =~ s/(?<fn>(?<prefix>...).*)/$+{prefix}\/$+{fn}/g;
- $ext = "";
- $ext .= $o{compress} ? ".gz" : "";
$ext .= $o{pass} ? ".x" : "";
# the extension we do not put into the index
@@ -174,15 +172,22 @@
open($out, "|openssl @{[CIPHER]} -pass $o{pass} -out $out");
}
binmode($out);
+
if ($o{compress}) {
+ my $zbuffer;
gzip(
- \$buffer => $out,
+ \$buffer => \$zbuffer,
-Minimal => 1,
-Level => Z_BEST_SPEED,
-Strategy => Z_FILTERED
) or die $GzipError;
+ if (length($zbuffer)/length($buffer) < 0.9) {
+ $buffer = $zbuffer;
+ $ext = ".gz$ext";
+ }
}
- else { print {$out} $buffer }
+
+ print {$out} $buffer;
close($out);
rename($out => "$data/$file$ext");
$index{BLOCKS}[$. - 1] .= " *";