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