pollita Thu Sep 21 19:53:10 2006 UTC
Modified files:
/php-src/ext/standard/tests/file 002.phpt stream_rfc2397_002.phpt
/php-src/ext/standard streamsfuncs.c
Log:
Update (most of) the functions in streamsfuncs.c
This commit also includes a change to tests/file/stream_rfc2397_002.phpt
which doesn't entirely pass in unicode mode yet, however that's a unicode
issue in the data:// wrapper that needs fixing, not a problem with the
streams layer itself.
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/002.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/standard/tests/file/002.phpt
diff -u php-src/ext/standard/tests/file/002.phpt:1.3
php-src/ext/standard/tests/file/002.phpt:1.4
--- php-src/ext/standard/tests/file/002.phpt:1.3 Wed May 19 08:54:51 2004
+++ php-src/ext/standard/tests/file/002.phpt Thu Sep 21 19:53:10 2006
@@ -23,7 +23,7 @@
EOD;
$name = tempnam("./ext/standard/tests/file/", "php");
-$fp = fopen($name, "w");
+$fp = fopen($name, "wt");
fwrite($fp, $data);
fclose($fp);
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/stream_rfc2397_002.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/standard/tests/file/stream_rfc2397_002.phpt
diff -u php-src/ext/standard/tests/file/stream_rfc2397_002.phpt:1.3
php-src/ext/standard/tests/file/stream_rfc2397_002.phpt:1.4
--- php-src/ext/standard/tests/file/stream_rfc2397_002.phpt:1.3 Thu Jun 29
14:53:31 2006
+++ php-src/ext/standard/tests/file/stream_rfc2397_002.phpt Thu Sep 21
19:53:10 2006
@@ -193,11 +193,11 @@
--UEXPECTF--
array(8) {
[u"wrapper_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"stream_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"mode"]=>
- string(1) "r"
+ unicode(1) "r"
[u"unread_bytes"]=>
int(0)
[u"unread_chars"]=>
@@ -205,7 +205,7 @@
[u"seekable"]=>
bool(true)
[u"uri"]=>
- string(8) "data://,"
+ unicode(8) "data://,"
[u"base64"]=>
bool(false)
}
@@ -216,11 +216,11 @@
NULL
array(8) {
[u"wrapper_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"stream_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"mode"]=>
- string(1) "r"
+ unicode(1) "r"
[u"unread_bytes"]=>
int(0)
[u"unread_chars"]=>
@@ -228,7 +228,7 @@
[u"seekable"]=>
bool(true)
[u"uri"]=>
- string(15) "data://;base64,"
+ unicode(15) "data://;base64,"
[u"base64"]=>
bool(true)
}
@@ -247,11 +247,11 @@
NULL
array(9) {
[u"wrapper_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"stream_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"mode"]=>
- string(1) "r"
+ unicode(1) "r"
[u"unread_bytes"]=>
int(0)
[u"unread_chars"]=>
@@ -259,9 +259,9 @@
[u"seekable"]=>
bool(true)
[u"uri"]=>
- string(18) "data://text/plain,"
+ unicode(18) "data://text/plain,"
[u"mediatype"]=>
- string(10) "text/plain"
+ unicode(10) "text/plain"
[u"base64"]=>
bool(false)
}
@@ -272,11 +272,11 @@
NULL
array(10) {
[u"wrapper_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"stream_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"mode"]=>
- string(1) "r"
+ unicode(1) "r"
[u"unread_bytes"]=>
int(0)
[u"unread_chars"]=>
@@ -284,26 +284,26 @@
[u"seekable"]=>
bool(true)
[u"uri"]=>
- string(26) "data://text/plain;foo=bar,"
+ unicode(26) "data://text/plain;foo=bar,"
[u"mediatype"]=>
- string(10) "text/plain"
+ unicode(10) "text/plain"
[u"foo"]=>
- string(3) "bar"
+ unicode(3) "bar"
[u"base64"]=>
bool(false)
}
-string(3) "bar"
+unicode(3) "bar"
Warning: fopen(data://text/plain;foo=bar;bla,): failed to open stream:
rfc2397: illegal parameter in %sstream_rfc2397_002.php on line %d
bool(false)
NULL
array(10) {
[u"wrapper_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"stream_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"mode"]=>
- string(1) "r"
+ unicode(1) "r"
[u"unread_bytes"]=>
int(0)
[u"unread_chars"]=>
@@ -311,26 +311,26 @@
[u"seekable"]=>
bool(true)
[u"uri"]=>
- string(33) "data://text/plain;foo=bar;base64,"
+ unicode(33) "data://text/plain;foo=bar;base64,"
[u"mediatype"]=>
- string(10) "text/plain"
+ unicode(10) "text/plain"
[u"foo"]=>
- string(3) "bar"
+ unicode(3) "bar"
[u"base64"]=>
bool(true)
}
-string(3) "bar"
+unicode(3) "bar"
Warning: fopen(data://text/plain;foo=bar;bar=baz): failed to open stream:
rfc2397: no comma in URL in %sstream_rfc2397_002.php on line %d
bool(false)
NULL
array(11) {
[u"wrapper_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"stream_type"]=>
- string(7) "RFC2397"
+ unicode(7) "RFC2397"
[u"mode"]=>
- string(1) "r"
+ unicode(1) "r"
[u"unread_bytes"]=>
int(0)
[u"unread_chars"]=>
@@ -338,15 +338,15 @@
[u"seekable"]=>
bool(true)
[u"uri"]=>
- string(34) "data://text/plain;foo=bar;bar=baz,"
+ unicode(34) "data://text/plain;foo=bar;bar=baz,"
[u"mediatype"]=>
- string(10) "text/plain"
+ unicode(10) "text/plain"
[u"foo"]=>
- string(3) "bar"
+ unicode(3) "bar"
[u"bar"]=>
- string(3) "baz"
+ unicode(3) "baz"
[u"base64"]=>
bool(false)
}
-string(3) "bar"
+unicode(3) "bar"
===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.86&r2=1.87&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.86
php-src/ext/standard/streamsfuncs.c:1.87
--- php-src/ext/standard/streamsfuncs.c:1.86 Tue Sep 19 20:36:48 2006
+++ php-src/ext/standard/streamsfuncs.c Thu Sep 21 19:53:10 2006
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.86 2006/09/19 20:36:48 pollita Exp $ */
+/* $Id: streamsfuncs.c,v 1.87 2006/09/21 19:53:10 pollita Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -44,7 +44,7 @@
/* Streams based network functions */
#if HAVE_SOCKETPAIR
-/* {{{ proto array stream_socket_pair(int domain, int type, int protocol)
+/* {{{ proto array stream_socket_pair(int domain, int type, int protocol) U
Creates a pair of connected, indistinguishable socket streams */
PHP_FUNCTION(stream_socket_pair)
{
@@ -75,7 +75,7 @@
/* }}} */
#endif
-/* {{{ proto resource stream_socket_client(string remoteaddress [, long
&errcode, string &errstring, double timeout, long flags, resource context])
+/* {{{ proto resource stream_socket_client(string remoteaddress [, long
&errcode, string &errstring, double timeout, long flags, resource context]) U
Open a client connection to a remote address */
PHP_FUNCTION(stream_socket_client)
{
@@ -115,7 +115,7 @@
}
if (zerrstr) {
zval_dtor(zerrstr);
- ZVAL_STRING(zerrstr, "", 1);
+ ZVAL_EMPTY_TEXT(zerrstr);
}
stream = php_stream_xport_create(host, host_len, REPORT_ERRORS,
@@ -141,9 +141,10 @@
ZVAL_LONG(zerrno, err);
}
if (zerrstr && errstr) {
- /* no need to dup; we need to efree buf anyway */
+ /* errstr is emalloc'd, either assign it to STRVAL if
!UG(unicode)
+ * Or free it post-conversion if UG(unicode) */
zval_dtor(zerrstr);
- ZVAL_STRING(zerrstr, errstr, 0);
+ ZVAL_RT_STRING(zerrstr, errstr, ZSTR_AUTOFREE);
} else if (errstr) {
efree(errstr);
}
@@ -162,7 +163,7 @@
}
/* }}} */
-/* {{{ proto resource stream_socket_server(string localaddress [, long
&errcode, string &errstring, long flags, resource context])
+/* {{{ proto resource stream_socket_server(string localaddress [, long
&errcode, string &errstring, long flags, resource context]) U
Create a server socket bound to localaddress */
PHP_FUNCTION(stream_socket_server)
{
@@ -189,7 +190,7 @@
}
if (zerrstr) {
zval_dtor(zerrstr);
- ZVAL_STRING(zerrstr, "", 1);
+ ZVAL_EMPTY_TEXT(zerrstr);
}
stream = php_stream_xport_create(host, host_len, REPORT_ERRORS,
@@ -206,9 +207,10 @@
ZVAL_LONG(zerrno, err);
}
if (zerrstr && errstr) {
- /* no need to dup; we need to efree buf anyway */
+ /* errstr is emalloc'd, either assign it to STRVAL if
!UG(unicode)
+ * Or free it post-conversion if UG(unicode) */
zval_dtor(zerrstr);
- ZVAL_STRING(zerrstr, errstr, 0);
+ ZVAL_RT_STRING(zerrstr, errstr, ZSTR_AUTOFREE);
} else if (errstr) {
efree(errstr);
}
@@ -227,12 +229,14 @@
}
/* }}} */
-/* {{{ proto resource stream_socket_accept(resource serverstream, [ double
timeout, string &peername ])
+/* {{{ proto resource stream_socket_accept(resource serverstream, [ double
timeout, string &peername ]) U
Accept a client connection from a server socket */
PHP_FUNCTION(stream_socket_accept)
{
double timeout = FG(default_socket_timeout);
- zval *peername = NULL;
+ zval *zpeername = NULL;
+ char *peername = NULL;
+ int peername_len;
php_timeout_ull conv;
struct timeval tv;
php_stream *stream = NULL, *clistream = NULL;
@@ -240,7 +244,7 @@
char *errstr = NULL;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|dz", &zstream,
&timeout, &peername) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|dz", &zstream,
&timeout, &zpeername) == FAILURE) {
RETURN_FALSE;
}
@@ -251,20 +255,20 @@
tv.tv_sec = conv / 1000000;
tv.tv_usec = conv % 1000000;
- if (peername) {
- zval_dtor(peername);
- ZVAL_NULL(peername);
+ if (zpeername) {
+ zval_dtor(zpeername);
+ ZVAL_NULL(zpeername);
}
if (0 == php_stream_xport_accept(stream, &clistream,
- peername ? &Z_STRVAL_P(peername) : NULL,
- peername ? &Z_STRLEN_P(peername) : NULL,
+ zpeername ? &peername : NULL,
+ zpeername ? &peername_len : NULL,
NULL, NULL,
&tv, &errstr
TSRMLS_CC) && clistream) {
if (peername) {
- Z_TYPE_P(peername) = IS_STRING;
+ ZVAL_RT_STRINGL(zpeername, peername, peername_len,
ZSTR_AUTOFREE);
}
php_stream_to_zval(clistream, return_value);
} else {
@@ -278,13 +282,15 @@
}
/* }}} */
-/* {{{ proto string stream_socket_get_name(resource stream, bool want_peer)
+/* {{{ proto string stream_socket_get_name(resource stream, bool want_peer) U
Returns either the locally bound or remote name for a socket stream */
PHP_FUNCTION(stream_socket_get_name)
{
php_stream *stream;
zval *zstream;
zend_bool want_peer;
+ char *name = NULL;
+ int name_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &zstream,
&want_peer) == FAILURE) {
RETURN_FALSE;
@@ -292,19 +298,19 @@
php_stream_from_zval(stream, &zstream);
- Z_TYPE_P(return_value) = IS_STRING;
-
if (0 != php_stream_xport_get_name(stream, want_peer,
- &Z_STRVAL_P(return_value),
- &Z_STRLEN_P(return_value),
+ &name,
+ &name_len,
NULL, NULL
TSRMLS_CC)) {
RETURN_FALSE;
}
+
+ RETURN_RT_STRINGL(name, name_len, ZSTR_AUTOFREE);
}
/* }}} */
-/* {{{ proto long stream_socket_sendto(resouce stream, string data [, long
flags [, string target_addr]])
+/* {{{ proto long stream_socket_sendto(resouce stream, string data [, long
flags [, string target_addr]]) U
Send data to a socket stream. If target_addr is specified it must be in
dotted quad (or [ipv6]) format */
PHP_FUNCTION(stream_socket_sendto)
{
@@ -316,6 +322,7 @@
php_sockaddr_storage sa;
socklen_t sl = 0;
+ /* Typically we'll be sending binary data, but implicit RT conversion
from unicode is acceptable */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs|ls", &zstream,
&data, &datalen, &flags, &target_addr, &target_addr_len) == FAILURE) {
RETURN_FALSE;
}
@@ -333,12 +340,14 @@
}
/* }}} */
-/* {{{ proto string stream_socket_recvfrom(resource stream, long amount [,
long flags [, string &remote_addr]])
+/* {{{ proto string stream_socket_recvfrom(resource stream, long amount [,
long flags [, string &remote_addr]]) U
Receives data from a socket stream */
PHP_FUNCTION(stream_socket_recvfrom)
{
php_stream *stream;
zval *zstream, *zremote = NULL;
+ char *remote_addr = NULL;
+ int remote_addr_len;
long to_read = 0;
char *read_buf;
long flags = 0;
@@ -353,7 +362,6 @@
if (zremote) {
zval_dtor(zremote);
ZVAL_NULL(zremote);
- Z_STRLEN_P(zremote) = 0;
}
if (to_read <= 0) {
@@ -364,17 +372,17 @@
read_buf = emalloc(to_read + 1);
recvd = php_stream_xport_recvfrom(stream, read_buf, to_read, flags,
NULL, NULL,
- zremote ? &Z_STRVAL_P(zremote) : NULL,
- zremote ? &Z_STRLEN_P(zremote) : NULL
+ zremote ? &remote_addr : NULL,
+ zremote ? &remote_addr_len : NULL
TSRMLS_CC);
if (recvd >= 0) {
- if (zremote && Z_STRLEN_P(zremote)) {
- Z_TYPE_P(zremote) = IS_STRING;
+ if (zremote) {
+ ZVAL_RT_STRINGL(zremote, remote_addr, remote_addr_len,
ZSTR_AUTOFREE);
}
read_buf[recvd] = '\0';
- RETURN_STRINGL(read_buf, recvd, 0);
+ RETURN_RT_STRINGL(read_buf, recvd, ZSTR_AUTOFREE);
}
efree(read_buf);
@@ -382,7 +390,7 @@
}
/* }}} */
-/* {{{ proto long stream_get_contents(resource source [, long maxlen [, long
offset]])
+/* {{{ proto string stream_get_contents(resource source [, long maxlen [, long
offset]])
Reads all remaining bytes (or up to maxlen bytes) from a stream and returns
them as a string. */
PHP_FUNCTION(stream_get_contents)
{
@@ -437,7 +445,7 @@
}
/* }}} */
-/* {{{ proto resource stream_get_meta_data(resource fp)
+/* {{{ proto resource stream_get_meta_data(resource fp) U
Retrieves header/meta data from streams/file pointers */
PHP_FUNCTION(stream_get_meta_data)
{
@@ -461,11 +469,11 @@
add_ascii_assoc_zval(return_value, "wrapper_data", newval);
}
if (stream->wrapper) {
- add_ascii_assoc_string(return_value, "wrapper_type", (char
*)stream->wrapper->wops->label, 1);
+ add_ascii_assoc_rt_string(return_value, "wrapper_type", (char
*)stream->wrapper->wops->label, ZSTR_DUPLICATE);
}
- add_ascii_assoc_string(return_value, "stream_type", (char
*)stream->ops->label, 1);
+ add_ascii_assoc_rt_string(return_value, "stream_type", (char
*)stream->ops->label, ZSTR_DUPLICATE);
- add_ascii_assoc_string(return_value, "mode", stream->mode, 1);
+ add_ascii_assoc_rt_string(return_value, "mode", stream->mode,
ZSTR_DUPLICATE);
if (stream->readfilters.head) {
php_stream_filter *filter;
@@ -474,7 +482,7 @@
array_init(newval);
for (filter = stream->readfilters.head; filter != NULL; filter
= filter->next) {
- add_next_index_string(newval, filter->name, 1);
+ add_next_index_rt_string(newval, filter->name,
ZSTR_DUPLICATE);
}
add_ascii_assoc_zval(return_value, "read_filters", newval);
@@ -487,7 +495,7 @@
array_init(newval);
for (filter = stream->writefilters.head; filter != NULL; filter
= filter->next) {
- add_next_index_string(newval, filter->name, 1);
+ add_next_index_rt_string(newval, filter->name,
ZSTR_DUPLICATE);
}
add_ascii_assoc_zval(return_value, "write_filters", newval);
@@ -504,7 +512,18 @@
add_ascii_assoc_bool(return_value, "seekable", (stream->ops->seek) &&
(stream->flags & PHP_STREAM_FLAG_NO_SEEK) == 0);
if (stream->orig_path) {
- add_ascii_assoc_string(return_value, "uri", stream->orig_path,
1);
+ if (UG(unicode)) {
+ UChar *decoded_path = NULL;
+ int decoded_path_len = 0;
+
+ if (SUCCESS == php_stream_path_decode(stream->wrapper,
&decoded_path, &decoded_path_len, stream->orig_path, strlen(stream->orig_path),
REPORT_ERRORS, stream->context TSRMLS_CC)) {
+ add_ascii_assoc_unicodel(return_value, "uri",
decoded_path, decoded_path_len, 0);
+ } else {
+ add_ascii_assoc_null(return_value, "uri");
+ }
+ } else {
+ add_ascii_assoc_string(return_value, "uri",
stream->orig_path, 1);
+ }
}
if (!php_stream_populate_meta_data(stream, return_value)) {
@@ -516,7 +535,7 @@
}
/* }}} */
-/* {{{ proto array stream_get_transports()
+/* {{{ proto array stream_get_transports() U
Retrieves list of registered socket transports */
PHP_FUNCTION(stream_get_transports)
{
@@ -535,7 +554,7 @@
while (zend_hash_get_current_key_ex(stream_xport_hash,
&stream_xport, &stream_xport_len,
&num_key, 0, NULL) ==
HASH_KEY_IS_STRING) {
- add_next_index_stringl(return_value, stream_xport.s,
stream_xport_len, 1);
+ add_next_index_rt_stringl(return_value, stream_xport.s,
stream_xport_len, ZSTR_DUPLICATE);
zend_hash_move_forward(stream_xport_hash);
}
} else {
@@ -544,7 +563,7 @@
}
/* }}} */
-/* {{{ proto array stream_get_wrappers()
+/* {{{ proto array stream_get_wrappers() U
Retrieves list of registered stream wrappers */
PHP_FUNCTION(stream_get_wrappers)
{
@@ -563,7 +582,7 @@
(key_flags =
zend_hash_get_current_key_ex(url_stream_wrappers_hash, &stream_protocol,
&stream_protocol_len, &num_key, 0, NULL)) != HASH_KEY_NON_EXISTANT;
zend_hash_move_forward(url_stream_wrappers_hash)) {
if (key_flags == HASH_KEY_IS_STRING) {
- add_next_index_stringl(return_value,
stream_protocol.s, stream_protocol_len, 1);
+ add_next_index_rt_stringl(return_value,
stream_protocol.s, stream_protocol_len, ZSTR_DUPLICATE);
}
}
} else {
@@ -709,7 +728,7 @@
}
/* }}} */
-/* {{{ proto int stream_select(array &read_streams, array &write_streams,
array &except_streams, int tv_sec[, int tv_usec])
+/* {{{ proto int stream_select(array &read_streams, array &write_streams,
array &except_streams, int tv_sec[, int tv_usec]) U
Runs the select() system call on the sets of streams with a timeout
specified by tv_sec and tv_usec */
PHP_FUNCTION(stream_select)
{
@@ -828,7 +847,7 @@
ZVAL_LONG(ps[0], notifycode);
ZVAL_LONG(ps[1], severity);
if (xmsg) {
- ZVAL_STRING(ps[2], xmsg, 0);
+ ZVAL_RT_STRING(ps[2], xmsg, ZSTR_AUTOFREE);
} else {
ZVAL_NULL(ps[2]);
}
@@ -1006,7 +1025,7 @@
}
/* }}} */
-/* {{{ proto array stream_context_get_options(resource context|resource stream)
+/* {{{ proto array stream_context_get_options(resource context|resource
stream) U
Retrieve options for a stream/wrapper/context */
PHP_FUNCTION(stream_context_get_options)
{
@@ -1026,8 +1045,9 @@
}
/* }}} */
-/* {{{ proto bool stream_context_set_option(resource context|resource stream,
string wrappername, string optionname, mixed value)
- Set an option for a wrapper */
+/* {{{ proto bool stream_context_set_option(resource context|resource stream,
string wrappername, string optionname, mixed value) U
+ * Overloaded form: stream_context_set_option(resource context|resource
stream, array options)
+ * Set an option (or several options) for a wrapper */
PHP_FUNCTION(stream_context_set_option)
{
zval *options = NULL, *zcontext = NULL, *zvalue = NULL;
@@ -1062,7 +1082,7 @@
}
/* }}} */
-/* {{{ proto bool stream_context_set_params(resource context|resource stream,
array options)
+/* {{{ proto bool stream_context_set_params(resource context|resource stream,
array options) U
Set parameters for a file context */
PHP_FUNCTION(stream_context_set_params)
{
@@ -1083,7 +1103,7 @@
}
/* }}} */
-/* {{{ proto resource stream_context_get_default([array options])
+/* {{{ proto resource stream_context_get_default([array options]) U
Get a handle on the default file/stream context and optionally set
parameters */
PHP_FUNCTION(stream_context_get_default)
{
@@ -1107,7 +1127,7 @@
}
/* }}} */
-/* {{{ proto resource stream_context_create([array options[, array params]])
+/* {{{ proto resource stream_context_create([array options[, array params]]) U
Create a file context and optionally set parameters */
PHP_FUNCTION(stream_context_create)
{
@@ -1204,7 +1224,7 @@
}
/* }}} */
-/* {{{ proto resource stream_filter_prepend(resource stream, string
filtername[, int read_write[, string filterparams]])
+/* {{{ proto resource stream_filter_prepend(resource stream, string
filtername[, int read_write[, mixed filterparams]]) U
Prepend a filter to a stream */
PHP_FUNCTION(stream_filter_prepend)
{
@@ -1212,7 +1232,7 @@
}
/* }}} */
-/* {{{ proto resource stream_filter_append(resource stream, string
filtername[, int read_write[, string filterparams]])
+/* {{{ proto resource stream_filter_append(resource stream, string
filtername[, int read_write[, mixed filterparams]]) U
Append a filter to a stream */
PHP_FUNCTION(stream_filter_append)
{
@@ -1220,7 +1240,7 @@
}
/* }}} */
-/* {{{ proto bool stream_filter_remove(resource stream_filter)
+/* {{{ proto bool stream_filter_remove(resource stream_filter) U
Flushes any data in the filter's internal buffer, removes it from the
chain, and frees the resource */
PHP_FUNCTION(stream_filter_remove)
{
@@ -1321,7 +1341,7 @@
/* }}} */
-/* {{{ proto bool stream_set_blocking(resource socket, int mode)
+/* {{{ proto bool stream_set_blocking(resource socket, int mode) U
Set blocking/non-blocking mode on a socket or stream */
PHP_FUNCTION(stream_set_blocking)
{
@@ -1345,7 +1365,7 @@
/* }}} */
-/* {{{ proto bool stream_set_timeout(resource stream, int seconds, int
microseconds)
+/* {{{ proto bool stream_set_timeout(resource stream, int seconds, int
microseconds) U
Set timeout on stream read to seconds + microseonds */
#if HAVE_SYS_TIME_H || defined(PHP_WIN32)
PHP_FUNCTION(stream_set_timeout)
@@ -1381,7 +1401,7 @@
#endif /* HAVE_SYS_TIME_H || defined(PHP_WIN32) */
/* }}} */
-/* {{{ proto int stream_set_write_buffer(resource fp, int buffer)
+/* {{{ proto int stream_set_write_buffer(resource fp, int buffer) U
Set file write buffer */
PHP_FUNCTION(stream_set_write_buffer)
{
@@ -1418,7 +1438,7 @@
}
/* }}} */
-/* {{{ proto int stream_socket_enable_crypto(resource stream, bool enable [,
int cryptokind, resource sessionstream])
+/* {{{ proto int stream_socket_enable_crypto(resource stream, bool enable [,
int cryptokind, resource sessionstream]) U
Enable or disable a specific kind of crypto on the stream */
PHP_FUNCTION(stream_socket_enable_crypto)
{
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php