summaryrefslogtreecommitdiff
path: root/main/php_streams.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Add stream_wrapper_unregister()Sara Golemon2004-09-101-0/+2
| | | | | | | | | Disables a wrapper (user-defined or built-in) for the life of the request. Add stream_wrapper_restore() Restores the wrapper originally defined at the time the request started to the protocol name mentioned.
* BugFix#28868 (Part Two): This fixes thread unsafety in the userspaceSara Golemon2004-06-211-1/+3
| | | | | filters which relates to the fix just applied for userspace wrappers.
* BugFix#28868: Wrapper hash not thread-safe.Sara Golemon2004-06-211-1/+3
| | | | | | | | Userdefined wrappers were being registered into a global wrapper hash which can cross threads. Termination of once instance then has the potential to leave an active stream in another instance with no wrapper leading to segfault.
* wrap all PHPAPI prototypes into BEGIN_EXTERN_C/END_EXTERN_C blocksHartmut Holzgraefe2004-02-201-0/+17
| | | | | (else they won't be usable from C++ extensions)
* 'Bug Fix': scandir, being a new function in PHP5 should have always been ↵Sara Golemon2004-01-281-0/+7
| | | | wrapper aware.
* - Happy new year and PHP 5 for rest of the files too..foobar2004-01-081-2/+2
| | | | | # Should the LICENSE and Zend/LICENSE dates be updated too?
* Fix Win32 Build. mkdir/rmdir are macrosSara Golemon2003-12-131-2/+2
|
* Route mkdir()/rmdir() via wrapper ops.Sara Golemon2003-12-131-0/+17
| | | | | | Move current rmdir()/rmdir() code to plain_wrappers.c Implement mkdir()/rmdir() in ftp:// wrapper
* Route rename() via wrapper ops.Sara Golemon2003-12-121-0/+3
| | | | | | | Move current rename() code to main/streams/plain_wrapper.c Implement ftp/rename() Implement userstreams/rename()
* Move safemode/basedir checks for url_stat to plain_wrapper.Sara Golemon2003-12-011-0/+1
|
* Route php_stat() via streams/url_stat API (php_stream_stat_path).Sara Golemon2003-11-281-3/+7
| | | | | This enables fopen-wrappers support on stat() and related family calls.
* port "liveness" checks and a couple of other things from the 4.3 branch.Wez Furlong2003-11-271-0/+4
| | | | | | Liveness checks are used to validate persistent socket connects when they are re-used.
* - Always store the URI path in the streams structure, and expose it withDerick Rethans2003-11-031-1/+1
| | | | | stream_get_meta_data().
* Finalize the closing process of persistent streams. The currentIlia Alshanetsky2003-07-291-0/+3
| | | | | | | | | | | | | | | behavior/API is as follows: 1) To close a persistent use php_stream_pclose(), it will close the stream and remove it from the persistent list. 2) Inside PHP code only explicit fclose() will close persistent streams, all other actions such as unset() or assigning a value to stream handle will not. 3) Regular streams can still be closed by either fclose(), unset() or an assignment of a value to the stream handler.
* Merge selectable descriptor casting from PHP_4_3 branch.Wez Furlong2003-06-281-0/+2
|
* updating license information in the headers.James Cox2003-06-101-3/+3
|
* Fold 'options' parameter into wops->unlink methodSara Golemon2003-05-141-1/+1
|
* Setup unlink() method in wrapper_ops structure, implement unlink in ↵Sara Golemon2003-05-141-0/+3
| | | | plainfiles wrapper, explicitly set method NULL in other wrappers (for now), and rewrite unlink userland function to call into wrapper_ops
* Macro: php_stream_get_from_zval(php_stream *stream, zval **zstream, char ↵Sara Golemon2003-04-171-0/+6
| | | | *mode, int options, char **opened_path, php_stream_context *context) Z_TYPE_PP(zstream) can be either IS_RESOURCE (An already opened stream) or IS_STRING (a path to a stream to be opened)
* Implement persistent plain file streams.Wez Furlong2003-03-181-1/+4
| | | | | | | | | | | | | | | | | Usage: php_stream *stream = php_stream_fopen("/path/to/file", "r+b", NULL, STREAM_OPEN_PERSISTENT | ENFORCE_SAFE_MODE | REPORT_ERRORS); the filename and mode are combined to form the hash key for the persistent list; they must be identical for this same stream to be returned again in the next request. Calling php_stream_close() on a persistent stream *will* close it, as is usual with all persistent resources in PHP/ZE. This is deliberately *not* exposed to user-space PHP at this time.
* Add a generic meta data api for streams.Wez Furlong2003-02-271-0/+3
|
* Another big commit (tm).Wez Furlong2003-02-271-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Main Changes: - Implement a socket transport layer for use by all code that needs to open some kind of "special" socket for network or IPC. - Extensions can register (and override) transports. - Implement ftruncate() on streams via the ioctl-alike option interface. - Implement mmap() on streams via the ioctl-alike option interface. - Implement generic crypto API via the ioctl-alike option interface. (currently only supports OpenSSL, but could support other SSL toolkits, and other crypto transport protocols). Impact: - tcp sockets can be overloaded by the openssl capable sockets at runtime, removing the link-time requirement for ssl:// and https:// sockets and streams. - checking stream types using PHP_STREAM_IS_SOCKET is deprecated, since there are now a range of possible socket-type streams. Working towards: - socket servers using the new transport layer - mmap support under win32 - Cleaner code. # I will be updating the win32 build to add the new files shortly # after this commit.
* rename macro argument so that it does not partially match the string.Sascha Schumann2003-02-271-2/+2
| | | | | fixes a warning on unixware
* Added locking to streams.Ilia Alshanetsky2003-02-251-0/+9
| | | | | | | Allow PHP to automatically release locks on files when terminating the stream. Fixed bugs in the handling of the 3rd optional parameter to flock().
* MFB: Bunch of streams related fixes.Wez Furlong2003-02-241-0/+3
|
* Implement new filter API, stage 1.Wez Furlong2003-02-181-7/+7
| | | | | | | | | | | | This breaks user-space filters (for the time being), and those weird convert.* filters in ext/standard/filters.c The filters stack has been separated into one chain for read and one chain for write. The user-space stream_filter_append() type functions currently only operate on the read chain. They need extending to work with the write chain too.
* Move some of the streams header into supplementary filesWez Furlong2003-02-171-180/+4
| | | | | | # Just when you thought you had learned your way around the streams code; # I like to keep you all on your toes!
* Moving away from ANSI stdio for plain files.Wez Furlong2003-02-131-0/+4
|
* Added feature request #9173 (added stream_get_line(), this function willIlia Alshanetsky2003-02-091-0/+1
| | | | | | read either the specified number of bytes or until the ending string is found).
* Added missing definitions.Ilia Alshanetsky2003-02-071-1/+6
|
* Fix for bug #21406; infinite loop during filter flushing.Wez Furlong2003-01-061-2/+2
|
* Expose stream_filters_hash so that it can be searched by stream_get_filters()Sara Golemon2003-01-061-2/+2
|
* - Fix warnings on UnixWareDerick Rethans2003-01-021-2/+2
|
* Bump year.Sebastian Bergmann2002-12-311-1/+1
|
* Merge streams changes from branch.Wez Furlong2002-11-181-6/+7
|
* Make the macro use the function and not the other macro as discussedMarcus Boerger2002-11-061-1/+1
| | | | | with Wez.
* php_stream replacement for fprintfMarcus Boerger2002-11-061-0/+4
| | | | | #Agreed by Wez - I will use this mysel soon.
* correct define: silences compiler warning in http_fopen_wrapper.cMarcus Boerger2002-11-051-1/+1
|
* A better fix for bug #20110.Ilia Alshanetsky2002-10-281-5/+8
|
* Refine stream_select() to work with streams that have data in their readWez Furlong2002-10-211-1/+2
| | | | | | | | | | buffers. When selecting for read, the streams are examined; if any of them have pending read data, no actual select(2) call is performed; instead the streams with buffered data are returned; just like a regular select call. Prevent erroneous warning in stream_select when obtaining the fd.
* made fgets() binary safe.Wez Furlong2002-10-191-2/+4
| | | | | | | | | | | php_stream_gets is now a macro which calls php_stream_get_line. The latter has an option argument to return the number of bytes in the line. Functions like fgetcsv(), fgetss() can be made binary safe by calling php_stream_get_line directly. # HEADS UP: You will need to make clean after updating your CVS, as the # binary signature has changed.
* Fixed bug #19971 (optimized the file() function).Ilia Alshanetsky2002-10-181-0/+1
| | | | | The file() function is now also binary safe.
* This seems to resolve the issues with fgets.Wez Furlong2002-10-051-0/+2
| | | | | | | | I've moved EOF detection into the streams layer; a stream reader implementation should set stream->eof when it detects EOF. Fixed test for user streams - it still fails but that is due to an output buffering bug.
* replace dont_block with a flag.Wez Furlong2002-10-041-1/+6
|
* Improve the general behaviour of stream_gets and fix its semanticsSascha Schumann2002-10-041-0/+1
| | | | | | | | | | | | | | | | | with regard to sockets. The behaviour should be aligned with PHP 4.2 now. This has been verified to some degree. If the underlying stream operations block when no new data is readable, we need to take extra precautions. If there is buffered data available, we check for a EOL. If it exists, we pass the data immediately back to the caller. This saves a call to the read implementation and will not block where blocking is not necessary at all. If the stream buffer contains more data than the caller requested, we can also avoid that costly step and simply return that data.
* Differentiate between write buffer and streams read buffer sizes.Wez Furlong2002-09-281-1/+8
| | | | | | Add options for timeout and chunk size; previously these were only set-able for socket streams.
* Allow user streams/wrappers to implement fstat(), opendir() and stat().Wez Furlong2002-09-281-0/+2
|
* Rename file_get_wrapper_data -> file_get_meta_data.Wez Furlong2002-09-261-1/+2
| | | | | | | | | | It now always returns useful information for all streams. Unified that data with socket_get_status and made socket_get_status an alias for file_get_meta_data. Fix Location header following which was broken in this commit: http://cvs.php.net/diff.php/php4/ext/standard/http_fopen_wrapper.c?r1=1.41&r2=1.42&ty=h
* Implement persistent streams. (for pfsockopen).Wez Furlong2002-09-251-6/+15
| | | | | | Juggle some includes/definitions. Tidy up streams use in ext/standard/file.c
* Enable include("http://....") under win32 by downloading to a temporaryWez Furlong2002-09-231-1/+1
| | | | | | stream so that flex will get on nicely with the content. # untested; theoretically it should work just fine.