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

Reply via email to