Commit Graph

554 Commits

Author SHA1 Message Date
Greg Beaver
63adb98f78 split out zip functions 2008-01-08 19:40:23 +00:00
Greg Beaver
b93b48663d complete set of new tests for zip-based phars (need to test compression for zip-based phars)
fix a whole bunch of zip-related bugs
tar tests need some naming
add phar information to error messages, fix existing tests to reflect this
2008-01-08 07:08:46 +00:00
Greg Beaver
36efc2a907 eliminate potential double-free of alias
major improvement of zip/tar-based phar stub execution, now __FILE__ says it is the phar, and not phar/.phar/stub.php,
so that the same stub can be used for phar or tar/zip-based phars
ridiculous speedup of rename() within a phar (something like 1000%)
last of the tar-based phar fixes
new tests for tar-based phars, fix existing tests to use new format of __FILE__
2008-01-07 22:21:10 +00:00
Greg Beaver
3dca799fbb fix extension detection for aliases with no extension 2008-01-07 17:18:41 +00:00
Greg Beaver
8a46146f37 fix stat of directory in tar/zip
improve phar recognition of tar/zip-based phars in phar_compile_file
fix segfault in Phar::webPhar() with invalid redirect
add Phar->isTar()/isZip()/isPhar() to determine internal file format
fix creation of tar-based phars from filename in some circumstances
fix read of corrupted file contents from a tar if the tar had been opened readonly and then modified
ensure directories are marked with is_dir in tar file format entries
copy fp_refcount logic into phar_tar_flush() from phar_flush()
fix segfault when flushing a tar with a new stub/alias
2008-01-07 05:41:09 +00:00
Greg Beaver
826e98be83 eliminated memleak, now to make it recognize "dir" as a directory 2008-01-06 05:28:27 +00:00
Greg Beaver
99922cb729 fix typo in phar.c if bz2 is disabled 2008-01-06 05:16:20 +00:00
Greg Beaver
632a633154 fix segfault, add separate tar test for readonly=0 on corrupted tar 2008-01-05 23:02:23 +00:00
Greg Beaver
2fa568b7b0 do not attempt to create a new phar if a file exists and is corrupted or is not a phar archive,
i.e. require a clean slate - a non-existent file or a valid phar archive - to muck around with phar contents
add the first tar-based phar test
2008-01-05 22:46:54 +00:00
Greg Beaver
653dc9e8ce fix front controller tests (requires patch to run-tests.php posted to internals a little while ago)
allow phars to have extension .php as last resort
fix phar-based phars for MIME_OTHER type
2008-01-05 03:41:43 +00:00
Greg Beaver
67688371f7 use zip_free() instead of zip_close(), and don't add a stub if it already exists in phar_zip_flush(), update TODO 2008-01-04 17:04:41 +00:00
Marcus Boerger
95a9f1faf6 - Fix module info for bz2
- Differentiate enabled, disabled and unavailable
2008-01-04 16:10:49 +00:00
Greg Beaver
e8a5b20514 replace crappy $_SERVER munging with explicit munging via
Phar::mungServer().  This static method takes an array with one of these 4 indices (case-sensitive):
'PHP_SELF', 'SCRIPT_NAME', 'SCRIPT_FILENAME', 'REQUEST_URI'
and removes any reference to the actual path on the server.  This allows older apps to function unmodified inside a phar.
the variables are re-registered as PHAR_PHP_SELF and company to allow access from clever script files
[DOC]
2008-01-04 04:57:11 +00:00
Greg Beaver
8e18f1cae1 Phar::webPhar() and various problems relating to shutdown in an apache process fixed 2008-01-04 01:45:37 +00:00
Greg Beaver
f589855093 fix tar-based phars creation and loading 2008-01-03 18:13:27 +00:00
Greg Beaver
8ee4266b3f initial tar support - a few kinks to work on in phar creation, but read works 2008-01-03 04:45:00 +00:00
Greg Beaver
652d39c330 add zip-based phar support. not quite working is webPhar(), not sure why yet 2007-12-31 22:42:40 +00:00
Greg Beaver
e861913e39 fix windows build
# there HAS to be a better way to do this...
2007-12-24 21:40:54 +00:00
Greg Beaver
5200481aaf fix mem leak 2007-12-24 20:30:44 +00:00
Greg Beaver
02c7ff1343 complete re-factoring of front controller. Now it is done with
Phar->webPhar():
<?php
Phar::webPhar();
__HALT_COMPILER();

With the above stub, the default front controller will kick in.  An array of mime type overrides, and another
array mapping phar file entry -> redirected entry can be used to further customize
[DOC]
2007-12-23 21:12:42 +00:00
Greg Beaver
8e4cc4b3dd first attempt at major new feature: default front controller for web
Currently, an entire phar entry is leaked for no obvious reason, otherwise it works.  Sample code:
The phar has to be created using Phar->useFrontController(); and the stub performs actual resolution of which file to load:
<?php
Phar::mapPhar();
include 'phar://' . __FILE__ . '/' . substr($_SERVER['REQUEST_URI'], strlen(basename(__FILE__)));
__HALT_COMPILER();
?>

Phar automatically determines mime type from the file extension and either parses or displays the file.  Modification of REQUEST_URI
and other variables should happen in the stub
[DOC]
2007-12-22 07:46:53 +00:00
Greg Beaver
185a4a8309 on second thought, hooking into getcwd() is a bad idea, who uses this for code loading, anyways? 2007-12-21 04:49:25 +00:00
Greg Beaver
0d830a27ea implement cleaning of crap paths - major functionality boost 2007-12-20 23:12:40 +00:00
Greg Beaver
0bfc046eac remove minor (and unnecessary I might add) windows compile warnings 2007-12-20 04:12:23 +00:00
Greg Beaver
d4eccb4471 holy cow - include/fopen/cwd magic fully working on unix now for windows testing 2007-12-19 04:37:25 +00:00
Greg Beaver
2222da9493 making progress (include magic works) 2007-12-19 03:17:05 +00:00
Greg Beaver
0c51d58138 [unfinished] magically handle getcwd() and fopen() with include_path inside phar
this work is incomplete, but compiles and existing tests pass
2007-12-18 17:01:24 +00:00
Greg Beaver
47cef85c22 fix alias overloading detection on windows 2007-12-14 18:42:57 +00:00
Greg Beaver
4fb3122b16 fix terrible logic discovered in windows testing (not sure how it ever worked on unix) 2007-12-14 18:34:12 +00:00
Greg Beaver
708569029c windows fixes #2 (thanks Steph you rule) 2007-12-14 05:45:48 +00:00
Greg Beaver
c6fe26af37 windows fixes (thanks Steph you rule) 2007-12-14 05:39:20 +00:00
Greg Beaver
38bf150e4d remove stupid*$(# debug code 2007-12-14 05:00:59 +00:00
Greg Beaver
8a614e30db use thread-safe global var to store zend_compile_file, and restore the current zend_compile_file, not the one we
found in MINIT
2007-12-11 19:28:35 +00:00
Greg Beaver
47d859ced2 use stream_copy_to_stream again, figured out how to make the stupid filters work 2007-12-11 19:21:01 +00:00
Greg Beaver
688aef57f8 add the ability to automatically resolve includes inside a phar to files within that phar, so
no code modification is needed to include/require
2007-12-09 21:57:44 +00:00
Greg Beaver
4bcb68a4e8 fix errors found in delMetaData(), add get/delMetaData() to MetaData read test 2007-11-25 05:04:40 +00:00
Greg Beaver
e34be4f8bc preliminary work on using gnupg to verify/create signatures - no implementation, just phpinfo() output and build rules 2007-11-24 04:30:08 +00:00
Greg Beaver
a72251be6e experimental support for optional bz2 extension - should make windows users a whole lot happier 2007-11-24 04:06:44 +00:00
Greg Beaver
b21f49c7c7 MFB fixes for tests 2007-11-22 05:47:28 +00:00
Greg Beaver
43c7e6fa3b fix faulty logic on verification of phar 2007-11-20 05:34:35 +00:00
Greg Beaver
be023d6f62 much better fix for the problem of phar://c:\path\to\blah.phar
don't use php_parse_url() at all, and always unixify paths on copied strings.
our modification was modifying the zval original string, so a user would pass in
phar://c:\path\to\blah.phar

and their string would change to phar://c:/path/to/blah.phar - bad.

Now using

include 'phar://' . __FILE__ . '/index.php';

works on both unix and windows seamlessly, as well as $a = new Phar(__FILE__)

for use in the loader stub
2007-11-19 23:10:05 +00:00
Greg Beaver
4a86b3d6ea Ensure that the same phar can be referenced in multiple logical ways:
1) full path, with \ or / path separator
2) relative path to getcwd()

This should fix the last remaining windows-related quirks as well as similar problems
on unix
2007-11-15 05:21:11 +00:00
Greg Beaver
999961f080 begin win32 fixes for Phar object - still have a problem I can't track down yet, but it's only a matter of time before it is killed too
when passing in a full path with drive letter to the Phar object, we were
then passing "phar://C:/path/to/blah.phar" to php_parse_url(), which
thinks it is getting a valid url scheme "phar", host "C" path "/path/to/blah.phar"

we now pass "phar:///C:/path/to/blah.phar" to make it fail, and then properly
parse the url inside phar
2007-11-13 05:57:14 +00:00
Greg Beaver
6d98d843af fix TSRM, a couple of compile warnings on windows, and test 2007-10-18 19:47:24 +00:00
Greg Beaver
eb67969b73 fix Bug #12124: Phar object cannot be iterated over
remove unused variables
fix jit file open sprintf calls
2007-10-04 03:33:21 +00:00
Greg Beaver
07c509935c fix phar to work with PHP 5.3 2007-10-04 02:24:49 +00:00
Greg Beaver
33347b19f2 when opening an internal file read-only, recycle the phar archive's fp. This makes phar twice as fast (2.21x according to callgrind) 2007-08-30 02:30:16 +00:00
Greg Beaver
5d8919938d fix issue with large number of open file handles killing php with large phars on creation
- close file handles that have no references for entries
- add just-in-time re-processing of file handles
- make sure file size is set in renaming
- add old_flags to phar_entry_info so we can decompress when flushing a modified entry whose fp is closed
2007-08-17 04:47:50 +00:00
Greg Beaver
d3426be1c3 fix several mis-spelled 'temporary's add missing space in comment, and change 'script end' to 'stub end' in manifest read error messages 2007-06-01 03:48:17 +00:00
Marcus Boerger
7ecc0f7fad - Fix memory issue 2007-05-31 06:55:14 +00:00
Marcus Boerger
38bb8cb5af - Fix invalid efree() call 2007-05-28 21:04:42 +00:00
Marcus Boerger
096e123f2d - Verify stub
- Automatically cut off stub after __HALT_COMPILER();
- Always write longest stub ending, so there is no issue with length field
- Add test for setStub from file
- Fix tests
2007-05-27 16:54:37 +00:00
Marcus Boerger
ac05df4759 - For errors "internal corruption of phar ... (truncated manifest)" be more
precise about reason of failure, seperating all error strings
- Fix issue with writing compressed entries
- Fix issue with uncompressing entries
2007-05-27 15:47:52 +00:00
Marcus Boerger
7e1ba8bffb - Fix the fix 2007-05-20 22:14:07 +00:00
Marcus Boerger
73ddcc1fd2 - Fix shutdown 2007-05-20 21:46:54 +00:00
Marcus Boerger
6cbfd2271f - Drop RINIT completely (as discussed @ php|tek) 2007-05-18 04:31:39 +00:00
Marcus Boerger
4313bce995 - Get rid of RINIT completely 2007-05-16 23:20:31 +00:00
Marcus Boerger
5e3af23d20 - Reduce overhead of Phar's RINIT 2007-05-16 23:16:51 +00:00
Marcus Boerger
004932e11d - Add Phar::delMetadata()
- Add Phar::hasMetadata()
- Add Phar::isValidPharFilename()
2007-05-15 20:21:19 +00:00
Marcus Boerger
1ab96f2d04 - Drop commented line 2007-05-14 19:36:44 +00:00
Marcus Boerger
16e27c5aad - Fix main metadata handling, prefix main metadata with main 2007-05-14 19:36:09 +00:00
Marcus Boerger
440691899c - Optimize flushing, don't generate metadata twice 2007-05-14 19:14:00 +00:00
Marcus Boerger
c9c5dbbd8d - Unoptimized fix for metadata writing 2007-05-14 18:59:04 +00:00
Marcus Boerger
7aa7448a32 - Fix Phar::canWrite(), had inverted logic
- Support PHP & builds
2007-05-09 18:09:41 +00:00
Marcus Boerger
ab15beebbf - Compatibility with suhosin 2007-03-27 21:28:22 +00:00
Marcus Boerger
c84b870472 - Prevent rename on extracted archieves 2007-03-26 19:51:22 +00:00
Marcus Boerger
f1684e4735 - Fix return value of unlink/rename handlers
- Add extract_list support to all wrapper handlers but rename
2007-03-26 19:20:00 +00:00
Greg Beaver
e97b1aefbf fix memleak in external dirs
update package.xml
move API to 1.1.0
update package version to 1.1.0RC1
update API test
2007-03-26 16:42:47 +00:00
Greg Beaver
a92eeb61c4 [DOC]
implement setSignatureAlgorithm() and add class constants Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, Phar::PGP
2007-03-26 00:00:56 +00:00
Greg Beaver
c3b317f44c default must be SHA1 or we get a BC break 2007-03-25 23:42:49 +00:00
Marcus Boerger
c42a870b7e - Add general SHA-2 support by optional pecl/hash dependency
# We actually need support to select the signature type somehow
2007-03-25 21:43:49 +00:00
Marcus Boerger
b983973a1d - Add ini: phar.extract_list
- Add Phar::getExtractList
- Both allow to set a mapping <phar-file> to <extract-dir>
[[DOC]]
2007-03-25 19:03:38 +00:00
Greg Beaver
e53980587f minor typo s/whetehr/whether/ 2007-03-21 17:14:46 +00:00
Marcus Boerger
94c3896f73 - Provide dedicated hex function for digests 2007-02-24 02:08:08 +00:00
Marcus Boerger
0bd3f367de - Fix issues found with solaris 2007-02-06 23:19:10 +00:00
Marcus Boerger
8f11f4875d - Avoid direct tsrm manipulating in ini setting 2007-02-06 22:41:39 +00:00
Marcus Boerger
bed7c1167d - Fix potential read issues 2007-02-06 22:12:21 +00:00
Antony Dovgal
ea40c23358 fix macros for bigendian platforms 2007-02-06 21:43:46 +00:00
Antony Dovgal
65b47ce346 add missing closing marker 2007-02-06 21:04:22 +00:00
Marcus Boerger
3f3c8fcd10 - Drop another superflous stream close 2007-02-06 20:30:33 +00:00
Marcus Boerger
2a37a1284d - Drop superflous stream close 2007-02-06 20:15:12 +00:00
Greg Beaver
bc17dcfcd1 fix several potential segfaults, add tests for chmod(), fix chmod() 2007-02-06 17:09:37 +00:00
Marcus Boerger
45d63c3973 - Check temp file creation 2007-02-05 22:11:27 +00:00
Greg Beaver
40b66a8035 copyright year updates 2007-02-05 21:38:50 +00:00
Marcus Boerger
357b931e56 - Add additional check & test 2007-02-05 20:47:20 +00:00
Marcus Boerger
250119fa38 - Fix signed/unsigned warnings
- Use safe_emalloc where usefull
2007-02-05 20:34:23 +00:00
Marcus Boerger
c2d5db56ca - Need to drop // 2007-02-04 20:35:59 +00:00
Marcus Boerger
f210205e70 - PHP_VERSION_ID exists only in newer PHPs (5.1+)
- Improve error checking
2007-02-04 20:10:03 +00:00
Marcus Boerger
1c690cb9d4 - Add path sanitizer for new paths
- Add test for a few things we check with the sanitizer
# We might want to use the sanitizer for opening as well
2007-02-04 13:21:40 +00:00
Marcus Boerger
1b5b78ce18 - Provide both version strings, api and ext 2007-02-03 13:20:12 +00:00
Greg Beaver
93b387d327 fix mem leak on error, fix cwd issue. go back to BadMethodCallException for Phar->set*CompressedAllFiles(). ALL TESTS PASS, RELEASE IS IMMINENT 2007-02-03 04:04:18 +00:00
Marcus Boerger
7ae8840c50 - Fix mem access 2007-01-29 07:59:19 +00:00
Greg Beaver
c7a5d062f5 throw exceptions from Phar object, and errors from stream wrapper
# we need to account for uncaught exceptions in shutdown, 2 tests leak because of this
2007-01-29 06:02:19 +00:00
Greg Beaver
c6dc9be489 implement Phar->getMetadata() Phar->setMetadata(), add tests, implement meta-data in the header 2007-01-29 03:59:55 +00:00
Greg Beaver
744ec410ec add rename support 2007-01-28 22:43:38 +00:00
Marcus Boerger
8cfaa44955 - Make new flushing work 2007-01-28 21:26:54 +00:00
Marcus Boerger
d13719ace8 - In Commit reset donotflush 2007-01-28 19:56:09 +00:00
Marcus Boerger
ea9796cca4 - Drop phar_destroy_phar_data() from api 2007-01-28 12:18:07 +00:00
Marcus Boerger
e1db72467c - Fix read/write mode handling 2007-01-28 10:32:45 +00:00
Greg Beaver
e8cabb46f6 fix commitWrite test, enable creation of Phars with phar object 2007-01-28 05:40:18 +00:00
Greg Beaver
2513903e40 stream context for specifying meta-data 2007-01-28 03:25:53 +00:00
Marcus Boerger
4b2eed1fc1 - Clean up on flush 2007-01-27 23:02:42 +00:00
Marcus Boerger
f86b7b96fc - Refcounting 2007-01-27 22:23:52 +00:00
Marcus Boerger
426146b340 - More on 5.2.1 support 2007-01-27 22:18:18 +00:00
Marcus Boerger
ec6c58ca94 - Add 5.2.1 support 2007-01-27 21:34:40 +00:00
Marcus Boerger
fc8754c892 - Dropped one line by accident 2007-01-27 21:24:28 +00:00
Marcus Boerger
d5bbd84d76 - Prevent memory corruption 2007-01-27 21:23:02 +00:00
Marcus Boerger
c7523db97f - Cannot change stream here 2007-01-27 19:42:37 +00:00
Greg Beaver
7b6b53b83d php_stream_truncate_set_size() is a noop with temp streams.
so, we're going to use a brand new tempfile for truncation.

ALL TESTS PASS NOW (finally)
2007-01-27 18:57:12 +00:00
Greg Beaver
1d11c2c4a7 fix memleaks and all but 1 test 2007-01-27 18:45:48 +00:00
Greg Beaver
78f1b9401b fix memleak in unlink() 2007-01-27 18:27:19 +00:00
Greg Beaver
74d7701b2b fix incorrect refcount increment on unlink() 2007-01-27 18:03:40 +00:00
Marcus Boerger
13e860e66f - Fix memory access 2007-01-27 17:27:48 +00:00
Marcus Boerger
ced8e1d9d1 - Make phar_flush() work without reloading
- Make refcounting fly
2007-01-27 15:31:24 +00:00
Marcus Boerger
9cd8d73677 - Simplify by providing delref function 2007-01-26 19:58:22 +00:00
Marcus Boerger
e52a5adc34 - Fix stream closing 2007-01-26 19:43:04 +00:00
Greg Beaver
8de7bd61bf implement phar refcounting
move setStub to commitWrite() and add beginWrite()

# many oo-based tests still fail, they need to be tweaked and fixed
2007-01-26 14:52:10 +00:00
Antony Dovgal
d6af95d1a4 fix folding and a couple of typos 2007-01-23 23:31:14 +00:00
Greg Beaver
d8c26fd461 fix tests, fix corruption issues with compression, simplify code. 3 tests still fail, memory leaks and mysterious crc error - the 16 tests are faulty 2007-01-22 03:41:41 +00:00
Marcus Boerger
03dfef9f99 -Simplify 2007-01-22 02:07:45 +00:00
Marcus Boerger
261749d402 - Generate CRC32 in case not done in original file 2007-01-22 02:04:51 +00:00
Marcus Boerger
79985976a6 - CRC is done on uncompressed data 2007-01-22 02:00:18 +00:00
Marcus Boerger
2312d0772d - Drop erroneously added numbers in error messages 2007-01-22 01:01:50 +00:00
Marcus Boerger
ed454d0fc8 - Finish get/setStub() 2007-01-22 00:59:02 +00:00
Greg Beaver
27f4a3ad30 add setUncompressed(), setCompressedGZ(), setCompressedBZ2() to PharFileInfo, and a failing test (due to bug in streams + bug in phar) 2007-01-22 00:13:20 +00:00
Greg Beaver
9c2651d210 X Phar->setStub() for specifying a new stub to the phar [Greg] 2007-01-21 23:22:57 +00:00
Marcus Boerger
d0d87d8435 - Rewrite/Finish metadata handling 2007-01-21 20:12:50 +00:00
Marcus Boerger
a02afe32c1 - Fix issues with metadata testing 2007-01-21 15:57:12 +00:00
Marcus Boerger
c440902e04 - Simplify dtor
- Zero terminate meta data
2007-01-21 15:28:56 +00:00
Marcus Boerger
3066cfb3ef - Disable most of class Phar and all of class PharFileInfo if SPL is not present 2007-01-21 15:25:50 +00:00
Greg Beaver
f21a0cdd0c fix final memory leak, fix metadata reading (simple), add basic test that it doesn't break 2007-01-21 06:54:04 +00:00
Greg Beaver
d661faefda fix 1 mem leak 2007-01-21 06:39:32 +00:00
Greg Beaver
5bbd10296c implement reading meta-data from phars. writing is not yet supported 2007-01-21 06:30:55 +00:00
Greg Beaver
773fc51457 implement ini handler for phar.readonly and phar.require_hash that allows enabling it on
PHP_INI_ALL if it is disabled in the system, but does not allow disabling it
   if it is enabled in the syste
2007-01-20 22:40:47 +00:00
Marcus Boerger
154de1819e - Fix flags and tests 2007-01-20 16:43:45 +00:00
Greg Beaver
a5dff13465 update TODO to include missing items
move permissions to the lowest bits of flags
fix warnings about signedness
fix unclear /* docs */
2007-01-20 05:28:48 +00:00
Greg Beaver
c35b9f30b6 add class constants Phar::COMPRESSED, Phar::GZ, and Phar::BZ2 for eventual compression manipulation 2007-01-18 00:13:18 +00:00
Greg Beaver
28d4b75d26 fix for deleted files when read from, generalize refcount1 test better 2007-01-16 03:41:52 +00:00
Greg Beaver
05f0989797 tweak docs for canCompress 2007-01-16 00:00:26 +00:00
Marcus Boerger
433a932aad - Improve flag handling
- Fixes to file open mode
- First step towards permission handling
2007-01-14 00:32:38 +00:00
Marcus Boerger
c13d272acc - Drop useless comment
- Move global macro def to .c
- Cleanup by using bit fields for internal flags
2007-01-13 17:10:18 +00:00
Marcus Boerger
1b98a49f8b - Change version validation to minimum api version required 2007-01-13 16:44:54 +00:00
Marcus Boerger
c6c23145f4 - Change to new layout wich has some more flags that will be used for perms
- Update/simplify tests
2007-01-13 16:17:04 +00:00
Marcus Boerger
1834516f7a - Reorder includes 2007-01-11 22:57:42 +00:00
Marcus Boerger
7303202be1 - Fix a few things
- Cleanup
2007-01-11 01:04:47 +00:00
Marcus Boerger
0295f8bbdc - Fix shutdown issue (keep the speed) 2007-01-10 00:38:17 +00:00
Marcus Boerger
813d4a2451 - Simplify/Add comment 2007-01-10 00:07:45 +00:00
Marcus Boerger
a3020cee1f - Simplify 2007-01-09 23:57:03 +00:00
Marcus Boerger
a7d57a4814 - Fix write support & simplify 2007-01-09 23:23:12 +00:00
Marcus Boerger
af6a28ba0d - Simplify 2007-01-09 22:30:56 +00:00
Marcus Boerger
469a0c68dd - Cleanup 2007-01-09 18:54:37 +00:00
Marcus Boerger
887a45e3e8 - Fix fname and alias hash table handling 2007-01-09 02:27:12 +00:00
Marcus Boerger
8e8697b1f7 - Add Phar::getSignature()
- Add Phar::getModified()
- Fix internal hash storage size
- Fix minor memory issues
- Drop boguscode lines (copy'n'paste left over)
- Increase api version to 0.9.0
2007-01-09 00:27:13 +00:00
Marcus Boerger
7093d72b5e - Add initial hash support write/read/verify md5/sha1(default) 2007-01-08 23:03:41 +00:00
Marcus Boerger
f6da0a4df6 - Better handler names (group by prefixing) 2007-01-08 19:30:52 +00:00
Greg Beaver
e34af34365 fix unlink 2007-01-07 19:57:26 +00:00
Greg Beaver
1ef69b7f08 another attempt to fix unlink()/unset() 2007-01-07 19:45:31 +00:00
Greg Beaver
71c7c383b4 fix unlink - make sure it actually erases the file 2007-01-07 19:05:12 +00:00
Marcus Boerger
e947f62b01 - Fix memory issues 2007-01-07 18:35:48 +00:00
Marcus Boerger
0d8ec844d6 - Fix a memleak
- Fix uninitialized mem access
- Fix/improve error handling
- Add INI entry phar.readonly
- Add tests
2007-01-07 16:01:35 +00:00
Edin Kadribasic
b23813044d Var declarations first (fixes windows build) 2007-01-06 18:58:34 +00:00
Greg Beaver
94d1d69569 add unset support and test
make sure isset() does not return deleted files
do not store implicit aliases for the phar
2007-01-05 04:45:52 +00:00
Greg Beaver
8b94a6a254 add support for creating new files via array access 2007-01-05 04:27:49 +00:00
Greg Beaver
ef4749b8cf fix creation of phar from scratch, add test case 2007-01-05 03:04:56 +00:00
Greg Beaver
c7c42d9d47 add test for delete in phar, we needed to check the deleted flag in case the new phar has not been flushed to disk 2007-01-05 02:04:07 +00:00
Greg Beaver
00f516cc99 fix creation of new files within an existing phar, add test 2007-01-05 01:50:26 +00:00
Greg Beaver
10d45c7668 fixed crc - write test works 2007-01-05 01:13:13 +00:00
Greg Beaver
fc2d773388 major reworking of how the phar is re-worked in memory when written to, fix written phar
CRC32 check fails on newly added files in phar, I can't figure out why
2007-01-04 05:32:45 +00:00
Greg Beaver
801f8aaf01 add unlink support 2007-01-03 15:53:29 +00:00
Greg Beaver
d1cc13c9b2 fix all but one of the double-destroyed hashes, and all but one of the unclosed streams 2007-01-03 15:43:07 +00:00
Greg Beaver
3842b6712d correctly generate version string for new phar 2007-01-02 22:57:47 +00:00
Greg Beaver
c88a692b31 add some error handling to phar creation 2007-01-02 21:21:18 +00:00
Greg Beaver
5321858746 add some error handling to phar creation 2007-01-02 21:01:44 +00:00
Marcus Boerger
d013240a01 - Change write macros to inline funcs 2007-01-02 20:25:04 +00:00
Greg Beaver
0bbbb73910 fix a number of bugs found in testing new (uncommitted) unit test 2007-01-02 19:59:38 +00:00
Marcus Boerger
63bc59ae0a - TSRM fix 2007-01-02 19:54:09 +00:00
Greg Beaver
1ffb4ba7eb initial support for writeable phars
# we need to refcount everything, I suspect, or we can get segfaults, have not verified this though
# all the write stuff is untested, and Phar::__construct() does not allow creation of a new phar, only appending to and existing one
2007-01-02 18:15:17 +00:00
Greg Beaver
373fb2f82f add doc comments to help sort out what's what 2007-01-02 00:04:30 +00:00
Marcus Boerger
a289a0d435 - Fix memleaks 2006-11-12 17:37:51 +00:00
Marcus Boerger
45b6a1cb24 - Set clone handler even though right now some spl code snippet is missing 2006-03-10 23:53:41 +00:00
Marcus Boerger
d85294d0f4 - Fix issue with parser error in included phar:// entries 2006-03-10 23:52:57 +00:00
Marcus Boerger
b883386ff0 - safe_mode is nuked in head
- spl_filesystem_object now allows controlling of clone too
2006-03-08 20:31:23 +00:00
Marcus Boerger
e324e11452 - Initial refcounting 2006-03-08 20:07:25 +00:00
Marcus Boerger
96fc81d615 - WS/CS 2006-03-08 00:56:31 +00:00
Marcus Boerger
c818d09f6d - Add initial array-access support based on Greg's patch 2006-03-04 22:48:05 +00:00
Greg Beaver
0d12c29530 s/archieve/archive 2006-03-04 02:12:22 +00:00
Marcus Boerger
c9f49d277b - Store min/max timestamp of entries while building manifest and use max
value for a/c/m-time of dirirectory stats.
2006-03-02 22:44:39 +00:00
Marcus Boerger
40a610887d - Need to set eof flag when inner stream has eof condition 2006-02-28 14:44:23 +00:00
Marcus Boerger
946219de15 - Fix reflection info 2006-02-28 01:57:00 +00:00
Marcus Boerger
ce2b0345fb - This dtor is actually always needed 2006-02-28 01:45:28 +00:00
Marcus Boerger
a3fcdf4f08 - Add OO interface to handling phar archieves and entries
- Add support for HEAD
- Cleanup
2006-02-28 01:36:30 +00:00
Greg Beaver
d536cb4139 update copyright year, and add credits for Davey Shafik/info on where Phar came from 2006-01-23 19:30:14 +00:00
Marcus Boerger
42e3644d5b - Add bzip2 decompression support 2006-01-12 21:16:29 +00:00
Marcus Boerger
566f8b136a - Use consumed filter to check number of compressed bytes read
# This fixes all tests again
2006-01-12 02:33:28 +00:00
Marcus Boerger
8166072ea3 - Change to use streams filters which simplifies decompression a lot and
easily allows to use other compression algos too
2006-01-11 23:55:57 +00:00
Marcus Boerger
b4e19230f9 - Split fname/phar-data mapping and alias/phar-data mapping
- Add test
2006-01-11 21:19:46 +00:00
Marcus Boerger
9222435376 - WS 2006-01-11 20:32:56 +00:00
Marcus Boerger
5b62ceebb2 - Fix more errors (by the way the phars are found)
- Cleanup code
2006-01-11 01:51:47 +00:00
Marcus Boerger
23d81c4630 - Fix a few error checks 2006-01-11 00:50:07 +00:00
Greg Beaver
2ca31fa63c tests need updating, but this works with a valid 0.8.0 phar now. Additions include alias/apiversion/per-file flags in the manifest 2006-01-10 06:46:17 +00:00
Marcus Boerger
57c39d214d - WS 2006-01-06 20:43:19 +00:00
Marcus Boerger
cc242b6afa - Fix potential crash (const' type is not initialized in case of error) 2006-01-06 20:34:31 +00:00
Marcus Boerger
27dbc1d969 - Prevent overloading aliases
- Detect already loaded files and reuse them instead of reloading them
- Add a test for the above
2006-01-06 19:20:21 +00:00
Marcus Boerger
2490f087b4 - Fix typo and change to sizeof usage 2006-01-06 17:32:34 +00:00
Marcus Boerger
685fa28235 - Rewind stream when transferring ownership
- Add Phar::loadPhar + test
2006-01-06 17:23:42 +00:00
Marcus Boerger
fbdb432847 - Typo 2006-01-06 15:31:42 +00:00
Marcus Boerger
abd2aeb1cd - Use temp streams internally instead of memory to reduce memory usage
# Internally we try to use only one temp stream if possible by stoing
# the temp stream in the manifest entry and transferring ownership upon
# usage/close. If a particular file gets opened twice in parallel we open
# a second temp stream nonetheless.
2006-01-05 22:24:41 +00:00
Marcus Boerger
f3275b2080 - Made HashTable manifest a direct member rather than a pointer
- Need to find a working detection for compressed phars
2006-01-05 11:32:05 +00:00
Marcus Boerger
f65ab3c1e0 - If no compression was specified and we detect compression than simply set
compression mode.
2006-01-05 00:55:55 +00:00
Marcus Boerger
9b3ea9bb59 - Allow simple .phar too (in that case we guess no compression) 2006-01-05 00:53:41 +00:00
Marcus Boerger
d4a400726d - Cleanup/simplify/let configure determine whetehr we are big/little-endian 2006-01-05 00:39:31 +00:00
Marcus Boerger
7ed3be8240 - Fix TSRM builds 2006-01-04 16:18:31 +00:00
Marcus Boerger
b72e1143d2 - More clean up (no need to export enything because one may either access
the stream handler tables through the streams api or use the streams
  which is prefered anyway).
2006-01-04 15:50:45 +00:00
Marcus Boerger
5a45646d8b - Clearify names
- Fix several memleaks
- Cache files
2006-01-04 15:27:18 +00:00
Marcus Boerger
cb9f1be8aa - Add myself as author 2006-01-04 13:18:31 +00:00
Sebastian Bergmann
42736d6d70 ZTS fixes. 2006-01-04 09:26:32 +00:00
Marcus Boerger
be1177259e - Imlement normal stream handling, use .phar.php anf .phar.gz to detect
where the filename part ends and whether it is compressed or not
# This already allows: php ext/spl/examples/directorytree.php phar:///...
2006-01-04 02:26:15 +00:00
Marcus Boerger
cc860105fe - Fix two crashes in case of error 2006-01-03 16:22:23 +00:00
Marcus Boerger
e829ba3a9d - Provide parameter info
- Add missing editor blocks
2006-01-03 15:59:07 +00:00
Marcus Boerger
d01c016cbd - Change to new extension layout (drops unneccessary foward decls)
- Privide proto's
2006-01-03 15:50:46 +00:00
Greg Beaver
33925b3627 PHP_Archive -> Phar to match coding standards and pecl traditions 2006-01-01 22:49:10 +00:00
Greg Beaver
98e7933f8b fix 018/019.phpt - we need to compare the whole key, not just all but 1 char, otherwise 1-byte files/dirs are not compared 2006-01-01 22:20:26 +00:00
Marcus Boerger
f21708f0a4 - Small tweaks/cleanup/left-overs 2006-01-01 22:19:51 +00:00
Greg Beaver
4b70d45fc9 remove a host of small problems found by testing 016.phpt 2006-01-01 22:11:03 +00:00
Marcus Boerger
77232928a5 - No revert the automatically inserted /*..*/ where wrong 2006-01-01 20:40:43 +00:00
Marcus Boerger
570e38fde8 - Fix comments 2006-01-01 20:34:22 +00:00
Greg Beaver
edb6e4c9d5 add sorting to opendir() so that it matches PHP_Archive exactly 2006-01-01 20:16:09 +00:00
Greg Beaver
75bac89418 fix eof, fix segfault in stat, add unique dev/inode to allow caching via opcode caches like APC, comply with API 0.7.1, add todo items to EXPERIMENTAL 2006-01-01 07:40:36 +00:00
Greg Beaver
4479bebb13 streamline, add more phpinfo output
switch parameter order for PHP_Archive::mapPhar, will be better in the long run
2005-12-14 03:42:43 +00:00
Greg Beaver
b4cc79277a complete unit tests (woohoo!)
add stream seek (mistakenly never enabled)
2005-12-12 06:17:16 +00:00
Greg Beaver
e0b54bcdd3 slightly clearer error message 2005-12-11 21:44:44 +00:00
Edin Kadribasic
48f4c97b8c Use php5 built-in zlib. Unfortunatelly we don't export zError() there
so I habe generic "compression error" will suffice.
2005-12-11 21:23:35 +00:00
Greg Beaver
dd8e3dd4df fix opendir, add test for subdirectory, revert stupid addition to 018.phpt 2005-12-11 08:14:44 +00:00
Greg Beaver
7187bdc0d3 add opendir/readdir test for root dir, fix dir stat 2005-12-11 07:25:30 +00:00
Greg Beaver
ca86d4fa92 switch to php_stream_wrapper_log_error from php_error_docref (should be documented somewhere...), add test for failing stream open 2005-12-11 00:00:31 +00:00
Greg Beaver
285b5a934e fix minor leak on zlib error, new test for gzipped internal file 2005-12-10 23:19:32 +00:00
Greg Beaver
fb5cff819d add crc checked flag, for slight speedup on multiple access to the same file 2005-12-10 00:00:00 +00:00
Greg Beaver
e1d98926ba new test, better naming of tests 2005-12-09 23:55:52 +00:00
Greg Beaver
0285ef3952 fix leaks, mem corruption, and add test for successful phar 2005-12-09 23:37:03 +00:00
Greg Beaver
48050ca09d add constraint check for number of manifest entries, and test 2005-12-09 19:55:29 +00:00
Greg Beaver
755e9c3172 improve error messages to state overrun when it exists. Also, catch overrun before we attempt to write beyond the buffer's end 2005-12-08 07:59:18 +00:00
Greg Beaver
68a5fdea12 CS // -> /* */ 2005-12-08 07:38:44 +00:00
Greg Beaver
eb3c055e21 rework errors slightly. Add buffer overflow check for manifest, so we don't create a memory monster by accident 2005-12-08 07:34:16 +00:00
Greg Beaver
919b0736c5 add next truncation test, tweak error messages 2005-12-08 07:08:49 +00:00
Greg Beaver
16bd8c6ac7 add error if seeking fails on self, add test 1 for truncated phar 2005-12-08 06:46:02 +00:00
Greg Beaver
6ff5c1f974 add error if __HALT_COMPILER(); is not declared and new test 2005-12-08 06:38:26 +00:00
Greg Beaver
eea900316b add PHP_Archive::canCompress() which determines whether zlib decompression is available
clean up code slightly
add lots of error notification
add .cvsignore for tests/
update 002 to handle new testing behavior
2005-12-07 06:39:03 +00:00
Frank M. Kromann
b6f3fc1acf Fix ZTS and Win32 builds 2005-12-07 01:18:54 +00:00
Greg Beaver
f9e209f048 fix segfault in opendir/readdir. fix possible duplicate dirs. is_dir() doesn't yet work, so url_stat is not working fully 2005-12-05 08:31:05 +00:00
Greg Beaver
7944a489fd switch to streams, respect safe_mode, open_basedir 2005-12-05 04:47:29 +00:00
Greg Beaver
92846c03d4 kill memory leaks 2005-12-05 04:21:36 +00:00
Greg Beaver
852eec498f add ability to detect zlib library when zlib ext is disabled 2005-12-05 01:07:02 +00:00
Greg Beaver
6e0c451133 update header, use PHP 3.01 license 2005-12-04 22:50:54 +00:00
Greg Beaver
9d4036ea7c initial import
# file handling needs to use streams, handle safe_mode/open_basedir
2005-12-04 20:35:38 +00:00