diff options
author | David M <davidmj@users.sourceforge.net> | 2006-01-26 21:39:23 +0000 |
---|---|---|
committer | David M <davidmj@users.sourceforge.net> | 2006-01-26 21:39:23 +0000 |
commit | 5922903264ef43d5bfb04af378863945f911018a (patch) | |
tree | 86c1309ff81b165020571df7e0d96cb2e3456e59 /phpBB/includes/functions_compress.php | |
parent | 90385cd79a550b4ac08e10e3b8a01abc37965bd4 (diff) | |
download | forums-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.php | 21 |
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 |