Sara Golemon
6d10371ec6
'Bug Fix': scandir, being a new function in PHP5 should have always been wrapper aware.
2004-01-28 22:21:54 +00:00
Wez Furlong
e1ae61802b
Fix segfault for scripts like this:
...
<?php
pfsockopen("foo");
pfsockopen("foo");
?>
Where the transport fails to connect (since args are bogus);
the problem was that the persistent stream entry was not
correctly freed.
2004-01-27 22:40:44 +00:00
Ilia Alshanetsky
4cc62a06f6
Removed unused variable.
2004-01-27 03:20:35 +00:00
Hartmut Holzgraefe
234e8a76c4
stream_lock() method added to userspace streams wrapper
2004-01-21 10:17:12 +00:00
Ilia Alshanetsky
eb3ff409b0
Fixed bug #26974 (rename() doesn't check the destination file
...
against safe_mode/open_basedir).
2004-01-21 02:28:50 +00:00
foobar
ccfc46b0aa
- Happy new year and PHP 5 for rest of the files too..
...
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
Andi Gutmans
dbeb4158d2
- A belated happy holidays and PHP 5
2004-01-08 08:18:22 +00:00
Wez Furlong
ab11c8c5ba
MFB fix for #25597
2003-12-20 20:25:55 +00:00
Ilia Alshanetsky
1128955aa4
Fixed compiler warnings.
2003-12-14 18:23:15 +00:00
Sara Golemon
822ea95785
Export STREAM_MKDIR_RECURSIVE constant
2003-12-13 23:13:51 +00:00
Sara Golemon
a67bf6ecc9
Fix Win32 Build. mkdir/rmdir are macros
2003-12-13 18:48:39 +00:00
Sara Golemon
c56647833b
Route mkdir()/rmdir() via wrapper ops.
...
Move current rmdir()/rmdir() code to plain_wrappers.c
Implement mkdir()/rmdir() in ftp:// wrapper
2003-12-13 04:07:18 +00:00
Sara Golemon
b1f8236b63
Route rename() via wrapper ops.
...
Move current rename() code to main/streams/plain_wrapper.c
Implement ftp/rename()
Implement userstreams/rename()
2003-12-12 23:06:42 +00:00
Wez Furlong
ab0029cabf
Be smarter about which systems should register unix transports.
...
Fix skip conditions in these network tests
2003-12-05 13:41:02 +00:00
Sara Golemon
dacb3a68fe
Register url_stat flag constants in userspace
2003-12-02 20:06:40 +00:00
Sara Golemon
1aaf7da2ce
Populate userstream objects with context property
2003-12-02 19:14:31 +00:00
Sara Golemon
88ccc6a630
Update userspace/url_stat proto
2003-12-02 18:52:58 +00:00
Wez Furlong
da9093be3a
this can't be persistent
2003-12-02 16:35:19 +00:00
Sara Golemon
dbfe62117b
CS
2003-12-02 01:04:14 +00:00
Sara Golemon
681d18effd
Move safemode/basedir checks for url_stat to plain_wrapper.
2003-12-01 19:47:05 +00:00
Ilia Alshanetsky
c344754d48
Removed unused variables.
2003-11-30 19:43:30 +00:00
Wez Furlong
37f135ceef
Add stream_socket_sendto and stream_socket_recvfrom which work very much
...
like sendto() and recvfrom() syscalls.
2003-11-29 21:46:50 +00:00
Sara Golemon
026d4c9e4c
Route php_stat() via streams/url_stat API (php_stream_stat_path).
...
This enables fopen-wrappers support on stat() and related family calls.
2003-11-28 23:25:28 +00:00
Wez Furlong
6d86bb9e40
(sort of) MFB, feof fix for sockets.
2003-11-28 23:20:23 +00:00
Ilia Alshanetsky
baced1d63d
Fixed a memory leak.
2003-11-28 00:00:28 +00:00
Wez Furlong
3ee72aa5be
port "liveness" checks and a couple of other things from the 4.3 branch.
...
Liveness checks are used to validate persistent socket connects when they
are re-used.
2003-11-27 17:39:01 +00:00
Sara Golemon
0831f2b03a
Fix for file:// wrapper parsing.
...
(Cristiano Duarte <cunha17@uol.com.br>)
2003-11-23 17:35:00 +00:00
Derick Rethans
3ab8d263b8
- Always store the URI path in the streams structure, and expose it with
...
stream_get_meta_data().
2003-11-03 14:12:46 +00:00
Sara Golemon
495fd01ca4
Stop looking once we've found a matching filter.
2003-10-28 23:29:16 +00:00
Sara Golemon
c9b49af990
Extend Filter matching to check wildcards at multiple levels.
...
Ex: foo.bar.baz.bomb
Searches:
foo.bar.baz.bomb itself,
foo.bar.baz.*,
foo.bar.*, and
foo.*
Also changed tempvar "char wildcard[128];" to an estrdup() to
deal with potential filternames longer than 127 bytes.
2003-10-28 21:52:59 +00:00
Shane Caraveo
3a6ff32e2b
finish file uri support, this stuff was unecessary.
2003-10-19 21:19:54 +00:00
Shane Caraveo
2a41429472
A simpler patch to add file uri support
2003-10-19 20:59:12 +00:00
Shane Caraveo
0029a45795
revert file: support in preparation for simpler patch
2003-10-19 20:57:20 +00:00
Shane Caraveo
e5103d764a
make file uri's work with streams
2003-10-19 20:04:33 +00:00
Wez Furlong
590b3ccc79
Set the EOF indicator after each read attempt.
...
This prevents it getting stuck in the on position.
2003-10-08 10:55:51 +00:00
Marcus Boerger
3cf2d2f108
Show the whole message when in debug mode
2003-09-13 19:56:38 +00:00
Ard Biesheuvel
f940b0fe3c
Pointer size fix
2003-09-13 19:43:39 +00:00
Ard Biesheuvel
6f37733367
Fixed for 64bit archs
2003-09-13 15:27:09 +00:00
Ilia Alshanetsky
ef23b497d4
Fixed bug #25316 (Possible infinite loop inside _php_stream_write()).
2003-09-11 05:07:26 +00:00
Ilia Alshanetsky
0a3d5c9b08
Fixed bug #25429 (fix copying of stdin using copy() function)
2003-09-10 00:58:12 +00:00
Ilia Alshanetsky
9d9727aac5
Fixed compiler warnings.
2003-08-28 19:17:34 +00:00
Sascha Schumann
af8e15b8db
kill warnings
2003-08-28 17:07:40 +00:00
Ilia Alshanetsky
a326bde2e8
Prevent a crash when expand_filepath() fails.
2003-08-27 01:10:10 +00:00
Sascha Schumann
602d1b0045
One bit fields need to be unsigned, otherwise there is no storage for
...
the sign bit
"A signed bit field has a length of 1 bit."
2003-08-17 13:49:52 +00:00
Ilia Alshanetsky
4d98e9ec97
Finalize the closing process of persistent streams. The current
...
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.
2003-07-29 18:26:34 +00:00
Ilia Alshanetsky
37ee0e57cc
Fixed a double free bug when freeing persistent streams.
2003-07-28 18:57:28 +00:00
Wez Furlong
5cf5248b00
Fix for mips compiler.
2003-07-14 19:38:13 +00:00
Wez Furlong
fa342d2404
MFB: binary mode by default under win32.
2003-07-05 08:25:25 +00:00
Sara Golemon
444615e74c
Introduce connection pooling API. I'll use these in http/ftp fopen wrappers soon.
2003-07-02 22:18:59 +00:00
Wez Furlong
49228bd5e2
more size_t -> socklen_t.
...
Noticed by tychay@php.net
2003-07-02 21:11:35 +00:00
Wez Furlong
989500b347
socklen_t needs this.
...
We might need some more magic to ensure that socklen_t gets defined in
the correct places; lets see if any more problems arise...
2003-07-02 01:35:39 +00:00
Wez Furlong
17cbf83404
size_t -> socklen_t
...
fixes warnings under macosx
2003-07-01 19:51:06 +00:00
Wez Furlong
5ecc91c27d
Merge selectable descriptor casting from PHP_4_3 branch.
2003-06-28 11:24:47 +00:00
Wez Furlong
c0c20ef6f6
Fix for mips compiler
2003-06-28 11:06:11 +00:00
Sara Golemon
2e4ef86e10
MFB
...
Plug leak in context notifiers, implement notifier->dtor
2003-06-27 16:23:58 +00:00
Sara Golemon
ac79577776
MFB PHP_4_3 main/streams.c r-1.125.2.70
2003-06-27 04:27:18 +00:00
Sara Golemon
730ce7b06f
Add context property to userspace streams object.
2003-06-16 19:13:39 +00:00
Sara Golemon
2f4e91bf8a
optionvalue is being copied via zval_copy_ctor, there's no need to addref the original
2003-06-16 18:19:14 +00:00
Edin Kadribasic
6e2743023b
Win32 build fixes for openssl
2003-06-15 23:34:46 +00:00
Marcus Boerger
f304458bdb
Fix ZTS mode (hopefully all is working fine now again)
2003-06-14 19:30:42 +00:00
Sara Golemon
99db19661a
Plug leak (context options not freed)
...
Make contexts auto-registered, ensures userland contexts
and C API contexts are both dealt with on request shutdown.
Also brings contexts in keeping with streams which are already
auto-registered.
2003-06-13 21:33:59 +00:00
James Cox
f68c7ff249
updating license information in the headers.
2003-06-10 20:04:29 +00:00
Hartmut Holzgraefe
ac2606bf58
fix for crashbug with user level wrapper implementations of stream_stat
2003-05-29 20:19:03 +00:00
Wez Furlong
2d1a6e5dc2
MFB context refcounting and text-mode fopen fixes
2003-05-21 13:33:55 +00:00
Sara Golemon
83b7b75c3c
Implement default contexts. For the moment this is useless
...
but it will be used soon for connection pooling.
2003-05-21 04:04:50 +00:00
Hartmut Holzgraefe
b5bef8f7b3
always return timestamps as 'atime', 'mtime' and 'ctime'
...
no matter what names the underlying platform uses for them
2003-05-20 13:09:11 +00:00
Wez Furlong
192f632e2e
MFB fix for persistent streams recycling.
2003-05-19 22:58:34 +00:00
Marcus Boerger
f10a7b90b2
Fix warning
2003-05-19 18:48:15 +00:00
Marcus Boerger
1b0fdbf63a
Fix memleaks
2003-05-19 18:46:59 +00:00
Derick Rethans
92f0da58e6
- Rename stream_register_filter() to stream_filter_register(),
...
stream_register_wrapper() to stream_wrapper_register() and added an alias for
the latter change.
2003-05-19 15:35:06 +00:00
Sebastian Bergmann
85a13e3e9a
Fix warnings.
2003-05-17 06:21:34 +00:00
Sara Golemon
44743cf9ec
Implement userspace wrapper support for unlink method
2003-05-14 18:30:49 +00:00
Sara Golemon
65d359d71a
Fold 'options' parameter into wops->unlink method
2003-05-14 15:12:07 +00:00
Sara Golemon
5126fbe556
Setup unlink() method in wrapper_ops structure, implement unlink in plainfiles wrapper, explicitly set method NULL in other wrappers (for now), and rewrite unlink userland function to call into wrapper_ops
2003-05-14 06:10:04 +00:00
Marcus Boerger
b09aa87120
Don't access what is already freed (noticed by Sascha)
2003-04-16 17:30:03 +00:00
Moriyoshi Koizumi
49b43ad115
Changed stream filter factory to be capable of accepting a zval as a parameter
...
instead of a string
2003-04-16 14:30:25 +00:00
Marcus Boerger
75c8f37c03
Make it static
2003-04-13 20:30:57 +00:00
Marcus Boerger
887d5ec9c1
Speling
2003-04-13 20:12:54 +00:00
Marcus Boerger
bff63db577
Fix persistent stream closing (that one took me at least 3 days)
2003-04-13 19:47:55 +00:00
Sara Golemon
d6c24de842
Add IPv6 support to stream_socket_client/server()
2003-04-05 02:42:12 +00:00
Sara Golemon
c985b780a5
Prevent php_stream_get_record from grabbing more than maxlen characters
2003-04-04 01:34:00 +00:00
Moriyoshi Koizumi
8d2dd87d89
Fixed bug #22538 (stream filter problem)
2003-03-31 23:22:10 +00:00
Ilia Alshanetsky
62909237c4
WS
2003-03-31 22:13:01 +00:00
Wez Furlong
e451d88399
Fix for persistent stream shutdown under debug builds
2003-03-20 01:23:04 +00:00
Wez Furlong
7379f47518
Sanity check for when a stream is requested to be persistent but the wrapper
...
does not respect the flag.
2003-03-19 00:17:15 +00:00
Wez Furlong
86fb577d59
Implement persistent plain file streams.
...
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.
2003-03-18 23:37:54 +00:00
Wez Furlong
6a87651006
Q}
2003-03-18 22:26:02 +00:00
Wez Furlong
ce01fd9526
Avoid using FILE* where possible.
...
Tidy up handling of potential error situations for the php:// wrapper.
2003-03-18 16:40:29 +00:00
Wez Furlong
267db80b21
avoid unsigned issues.
2003-03-18 15:15:10 +00:00
Wez Furlong
7c2ccb5f65
Fix for #22721 (poor file() performance on systems without mmap)
2003-03-18 14:35:01 +00:00
Ilia Alshanetsky
e15cc99415
Win32 build fix.
2003-03-17 22:25:55 +00:00
Ilia Alshanetsky
27a7eaf4e7
Fixed bug #22538 (failed stat on stdio/stdin/stderr streams).
2003-03-17 18:32:15 +00:00
Wez Furlong
16e705a547
64bit fixes
2003-03-15 13:29:56 +00:00
Stefan Esser
af4aa97d1e
Fixing functionicalls with variable number of parameters...
2003-03-06 20:31:20 +00:00
Ilia Alshanetsky
fb4dab36f4
Compiler warning fix.
2003-03-03 19:57:18 +00:00
Wez Furlong
c3e6bcd398
Ensure that all fields are initialized to NULL.
2003-03-01 17:27:23 +00:00
Wez Furlong
242166d601
Don't shutdown() unix sockets.
...
It causes the server end to close down/break.
2003-03-01 15:22:21 +00:00
Wez Furlong
a3cf1ab8f6
Folding fixes
2003-03-01 15:20:42 +00:00
Wez Furlong
349ce76f96
Tidy up stupid signed/unsigned issues with win32 by introducing a php_socket_t typedef.
2003-02-28 21:03:36 +00:00
Wez Furlong
1b53a2d12e
New user-space functions:
...
. stream_socket_client() - similar to fsockopen(), but more powerful.
. stream_socket_server() - Creates a server socket.
. stream_socket_accept() - Accept a client connection.
. stream_socket_get_name() - Get local or remote name of socket.
Tidy up some leaks and debug printfs.
Move more streams functions into streamsfuncs.c and streamsfuncs.h.
2003-02-28 19:53:21 +00:00
Wez Furlong
cd98ed7b0a
Implement memory mapping for win32.
...
Could do with some rigorous testing; simple readfile() tests here appear to work.
2003-02-28 01:47:28 +00:00
Wez Furlong
cfd8150b30
Add a generic meta data api for streams.
2003-02-27 19:10:24 +00:00
Wez Furlong
203068d055
Fixup build for win32
2003-02-27 18:06:31 +00:00
Wez Furlong
fd61f69077
Another big commit (tm).
...
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.
2003-02-27 17:43:38 +00:00
Ilia Alshanetsky
5e118977cd
Fixed various compiler warnings.
2003-02-25 01:44:57 +00:00
Ilia Alshanetsky
9e0fb1a33c
Use native flock() whenever possible.
2003-02-25 01:41:58 +00:00
Ilia Alshanetsky
862634ffa5
Added locking to streams.
...
Allow PHP to automatically release locks on files when terminating the
stream.
Fixed bugs in the handling of the 3rd optional parameter to flock().
2003-02-25 01:39:06 +00:00
Moriyoshi Koizumi
4759048194
Removed unnecessary asserts
2003-02-24 23:13:40 +00:00
Wez Furlong
088e2692c3
MFB: Bunch of streams related fixes.
2003-02-24 21:40:23 +00:00
foobar
8e3f23e3c0
ws fixes + missing $Id$ tags, headers added
2003-02-19 08:40:19 +00:00
Wez Furlong
4c4d77d23e
Fix incorrect TSRMLS_CC usage.
...
Fix com_create_guid()
2003-02-18 19:03:44 +00:00
Sara Golemon
6fe4ab41f0
Fix stream_filter_(ap|pre)pend to allow attaching on the read and/or write chains. Automagically decide what to do if noone tells us.
2003-02-18 02:53:24 +00:00
Wez Furlong
952d5f548e
TSRMLS!
2003-02-18 01:39:26 +00:00
Wez Furlong
32165a5546
Implement new filter API, stage 1.
...
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.
2003-02-18 01:22:21 +00:00
Wez Furlong
6e296c5cbb
Move some of the streams header into supplementary files
...
# Just when you thought you had learned your way around the streams code;
# I like to keep you all on your toes!
2003-02-17 00:20:38 +00:00
Wez Furlong
2cc68ad7ad
Move streams files around a bit, to ease maintenance.
...
I will update the win32 .dsp in a moment.
2003-02-16 22:19:28 +00:00