johannes Tue Nov 20 22:16:20 2007 UTC Added files: /php-src/ext/standard/tests/file stream_supports_lock.phpt
Modified files: /php-src/ext/standard streamsfuncs.c streamsfuncs.h basic_functions.c Log: Add stream_supports_lock() function (Benjamin Schulz) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.109&r2=1.110&diff_format=u Index: php-src/ext/standard/streamsfuncs.c diff -u php-src/ext/standard/streamsfuncs.c:1.109 php-src/ext/standard/streamsfuncs.c:1.110 --- php-src/ext/standard/streamsfuncs.c:1.109 Thu Nov 8 13:29:38 2007 +++ php-src/ext/standard/streamsfuncs.c Tue Nov 20 22:16:19 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.c,v 1.109 2007/11/08 13:29:38 dmitry Exp $ */ +/* $Id: streamsfuncs.c,v 1.110 2007/11/20 22:16:19 johannes Exp $ */ #include "php.h" #include "php_globals.h" @@ -1677,6 +1677,26 @@ } /* }}} */ +/* {{{ proto bool stream_supports_lock(resource stream) + Tells wether the stream supports locking through flock(). */ +PHP_FUNCTION(stream_supports_lock) +{ + php_stream *stream; + zval *zsrc; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zsrc) == FAILURE) { + RETURN_FALSE; + } + + php_stream_from_zval(stream, &zsrc); + + if (!php_stream_supports_lock(stream)) { + RETURN_FALSE; + } + + RETURN_TRUE; +} + #ifdef HAVE_SHUTDOWN /* {{{ proto int stream_socket_shutdown(resource stream, int how) U causes all or part of a full-duplex connection on the socket associated http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.h?r1=1.20&r2=1.21&diff_format=u Index: php-src/ext/standard/streamsfuncs.h diff -u php-src/ext/standard/streamsfuncs.h:1.20 php-src/ext/standard/streamsfuncs.h:1.21 --- php-src/ext/standard/streamsfuncs.h:1.20 Tue Jul 3 10:22:55 2007 +++ php-src/ext/standard/streamsfuncs.h Tue Nov 20 22:16:20 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.h,v 1.20 2007/07/03 10:22:55 dmitry Exp $ */ +/* $Id: streamsfuncs.h,v 1.21 2007/11/20 22:16:20 johannes Exp $ */ /* Flags for stream_socket_client */ #define PHP_STREAM_CLIENT_PERSISTENT 1 @@ -58,6 +58,7 @@ PHP_FUNCTION(stream_socket_pair); PHP_FUNCTION(stream_resolve_include_path); PHP_FUNCTION(stream_is_local); +PHP_FUNCTION(stream_supports_lock); /* * Local variables: http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.883&r2=1.884&diff_format=u Index: php-src/ext/standard/basic_functions.c diff -u php-src/ext/standard/basic_functions.c:1.883 php-src/ext/standard/basic_functions.c:1.884 --- php-src/ext/standard/basic_functions.c:1.883 Thu Nov 15 13:11:48 2007 +++ php-src/ext/standard/basic_functions.c Tue Nov 20 22:16:20 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.883 2007/11/15 13:11:48 bjori Exp $ */ +/* $Id: basic_functions.c,v 1.884 2007/11/20 22:16:20 johannes Exp $ */ #include "php.h" #include "php_streams.h" @@ -2310,6 +2310,11 @@ ZEND_END_ARG_INFO() static +ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_supports_lock, 0, 0, 1) + ZEND_ARG_INFO(0, stream) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_select, 0, 0, 4) ZEND_ARG_INFO(1, read_streams) /* ARRAY_INFO(1, read_streams, 1) */ ZEND_ARG_INFO(1, write_streams) /* ARRAY_INFO(1, write_streams, 1) */ @@ -3532,6 +3537,7 @@ #endif PHP_FE(stream_copy_to_stream, arginfo_stream_copy_to_stream) PHP_FE(stream_get_contents, arginfo_stream_get_contents) + PHP_FE(stream_supports_lock, arginfo_stream_supports_lock) PHP_FE(stream_resolve_include_path, arginfo_stream_resolve_include_path) PHP_FE(fgetcsv, arginfo_fgetcsv) PHP_FE(fputcsv, arginfo_fputcsv) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/stream_supports_lock.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/file/stream_supports_lock.phpt +++ php-src/ext/standard/tests/file/stream_supports_lock.phpt --TEST-- stream_supports_lock --FILE-- <?php $fp = fopen(__FILE__, "r"); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $fp = fopen("file://" . __FILE__, "r"); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $fp = fopen("php://memory", "r"); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $fp = fopen('data://text/plain,foobar', 'r'); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $sock = stream_context_create(); var_dump($sock); var_dump(stream_supports_lock($sock)); echo "Done\n"; ?> --EXPECTF-- resource(%d) of type (stream) bool(true) resource(%d) of type (stream) bool(true) resource(%d) of type (stream) bool(false) resource(%d) of type (stream) bool(false) resource(%d) of type (stream-context) Warning: stream_supports_lock(): supplied resource is not a valid stream resource in %s on line %d bool(false) Done -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php