wez Thu Feb 27 14:10:24 2003 EDT
Modified files:
/php4/ext/standard file.c
/php4/main php_streams.h
/php4/main/streams xp_socket.c
Log:
Add a generic meta data api for streams.
Index: php4/ext/standard/file.c
diff -u php4/ext/standard/file.c:1.317 php4/ext/standard/file.c:1.318
--- php4/ext/standard/file.c:1.317 Thu Feb 27 13:16:34 2003
+++ php4/ext/standard/file.c Thu Feb 27 14:10:22 2003
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: file.c,v 1.317 2003/02/27 18:16:34 wez Exp $ */
+/* $Id: file.c,v 1.318 2003/02/27 19:10:22 wez Exp $ */
/* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */
@@ -646,22 +646,12 @@
#endif
add_assoc_long(return_value, "unread_bytes", stream->writepos -
stream->readpos);
-
-#if 0
- if (php_stream_is(stream, PHP_STREAM_IS_SOCKET)) {
- php_netstream_data_t *sock = PHP_NETSTREAM_DATA_FROM_STREAM(stream);
-
- add_assoc_bool(return_value, "timed_out", sock->timeout_event);
- add_assoc_bool(return_value, "blocked", sock->is_blocked);
- add_assoc_bool(return_value, "eof", stream->eof);
- } else {
-#endif
+
+ if (!php_stream_populate_meta_data(stream, return_value)) {
add_assoc_bool(return_value, "timed_out", 0);
add_assoc_bool(return_value, "blocked", 1);
add_assoc_bool(return_value, "eof", php_stream_eof(stream));
-#if 0
}
-#endif
}
/* }}} */
Index: php4/main/php_streams.h
diff -u php4/main/php_streams.h:1.75 php4/main/php_streams.h:1.76
--- php4/main/php_streams.h:1.75 Thu Feb 27 12:43:37 2003
+++ php4/main/php_streams.h Thu Feb 27 14:10:23 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_streams.h,v 1.75 2003/02/27 17:43:37 wez Exp $ */
+/* $Id: php_streams.h,v 1.76 2003/02/27 19:10:23 wez Exp $ */
#ifndef PHP_STREAMS_H
#define PHP_STREAMS_H
@@ -348,6 +348,9 @@
PHPAPI int _php_stream_truncate_set_size(php_stream *stream, size_t newsize
TSRMLS_DC);
#define php_stream_truncate_set_size(stream, size)
_php_stream_truncate_set_size((stream), (size) TSRMLS_CC)
+
+#define PHP_STREAM_OPTION_META_DATA_API 11 /* ptrparam is a zval* to
which to add meta data information */
+#define php_stream_populate_meta_data(stream, zv)
(_php_stream_set_option((stream), PHP_STREAM_OPTION_META_DATA_API, 0, zv TSRMLS_CC) ==
PHP_STREAM_OPTION_RETURN_OK ? 1 : 0)
#define PHP_STREAM_OPTION_RETURN_OK 0 /* option set OK */
#define PHP_STREAM_OPTION_RETURN_ERR -1 /* problem setting option */
Index: php4/main/streams/xp_socket.c
diff -u php4/main/streams/xp_socket.c:1.2 php4/main/streams/xp_socket.c:1.3
--- php4/main/streams/xp_socket.c:1.2 Thu Feb 27 13:06:30 2003
+++ php4/main/streams/xp_socket.c Thu Feb 27 14:10:24 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xp_socket.c,v 1.2 2003/02/27 18:06:30 wez Exp $ */
+/* $Id: xp_socket.c,v 1.3 2003/02/27 19:10:24 wez Exp $ */
#include "php.h"
#include "ext/standard/file.h"
@@ -201,6 +201,12 @@
case PHP_STREAM_OPTION_READ_TIMEOUT:
sock->timeout = *(struct timeval*)ptrparam;
sock->timeout_event = 0;
+ return PHP_STREAM_OPTION_RETURN_OK;
+
+ case PHP_STREAM_OPTION_META_DATA_API:
+ add_assoc_bool((zval *)ptrparam, "timed_out",
sock->timeout_event);
+ add_assoc_bool((zval *)ptrparam, "blocked", sock->is_blocked);
+ add_assoc_bool((zval *)ptrparam, "eof", stream->eof);
return PHP_STREAM_OPTION_RETURN_OK;
case PHP_STREAM_OPTION_XPORT_API:
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php