aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_compress.php
diff options
context:
space:
mode:
authorDavid M <davidmj@users.sourceforge.net>2006-01-26 21:39:23 +0000
committerDavid M <davidmj@users.sourceforge.net>2006-01-26 21:39:23 +0000
commit5922903264ef43d5bfb04af378863945f911018a (patch)
tree86c1309ff81b165020571df7e0d96cb2e3456e59 /phpBB/includes/functions_compress.php
parent90385cd79a550b4ac08e10e3b8a01abc37965bd4 (diff)
downloadforums-5922903264ef43d5bfb04af378863945f911018a.tar
forums-5922903264ef43d5bfb04af378863945f911018a.tar.gz
forums-5922903264ef43d5bfb04af378863945f911018a.tar.bz2
forums-5922903264ef43d5bfb04af378863945f911018a.tar.xz
forums-5922903264ef43d5bfb04af378863945f911018a.zip
Fixes in both CAPTCHA and Compress
Compress: - The "crc bug" is not a bug, it is actually a feature (the function returns an Adler hash, not a crc hash. This is more usefull for PNG files..) and was "fixed" by using the proper function instead of munging a substring - Zip files that are BZip2'd are now supported for extraction :-) CAPTCHA: - PNG generation now returns positive numbers for CRC, length, height and width! - We generate a variable number of images git-svn-id: file:///svn/phpbb/trunk@5496 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/functions_compress.php')
-rw-r--r--phpBB/includes/functions_compress.php21
1 files changed, 13 insertions, 8 deletions
diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php
index 4443292182..3bc83107f0 100644
--- a/phpBB/includes/functions_compress.php
+++ b/phpBB/includes/functions_compress.php
@@ -246,7 +246,7 @@ class compress_zip extends compress
{
trigger_error("Could not create directory $dir");
}
- @chmod("$dir", 0777);
+ @chmod("$dst$str", 0777);
}
}
}
@@ -270,22 +270,28 @@ class compress_zip extends compress
$mode = $fdetails['c_method'];
$content = fread($this->fp, $fdetails['c_size']);
+
+ $fp = fopen($target_filename, "w");
+
switch ($mode)
{
case 0:
// Not compressed
- $fp = fopen($target_filename, "w");
fwrite($fp, $content);
- fclose($fp);
break;
case 8:
// Deflate
- $fp = fopen($target_filename, "w");
fwrite($fp, gzinflate($content, $fdetails['uc_size']));
- fclose($fp);
+ break;
+
+ case 12:
+ // Bzip2
+ fwrite($fp, bzdecompress($content));
break;
}
+
+ fclose($fp);
}
}
}
@@ -306,7 +312,7 @@ class compress_zip extends compress
$name = str_replace('\\', '/', $name);
$dtime = dechex($this->unix_to_dos_time($stat[9]));
- $hexdtime = pack('H*', $dtime[6] . $dtime[7] . $dtime[4] . $dtime[5] . $dtime[2] . $dtime[3] . $dtime[0] . $dtime[1]);
+ $hexdtime = pack('H8', $dtime[6] . $dtime[7] . $dtime[4] . $dtime[5] . $dtime[2] . $dtime[3] . $dtime[0] . $dtime[1]);
if ($is_dir)
{
@@ -317,8 +323,7 @@ class compress_zip extends compress
{
$unc_len = strlen($data);
$crc = crc32($data);
- $zdata = gzcompress($data);
- $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug
+ $zdata = gzdeflate($data);
$c_len = strlen($zdata);
// Did we compress? No, then use data as is