[PHP-CVS] cvs: php4 /ext/standard user_filters.c

2003-06-13 Thread Sara Golemon
pollita Fri Jun 13 18:25:29 2003 EDT

  Modified files:  
/php4/ext/standard  user_filters.c 
  Log:
  User Filters don't need to register a resource list for streams.
  That functionality is already exported by the streams API.
  
  
Index: php4/ext/standard/user_filters.c
diff -u php4/ext/standard/user_filters.c:1.17 php4/ext/standard/user_filters.c:1.18
--- php4/ext/standard/user_filters.c:1.17   Tue Jun 10 16:03:39 2003
+++ php4/ext/standard/user_filters.cFri Jun 13 18:25:29 2003
@@ -18,7 +18,7 @@
+--+
 */
 
-/* $Id: user_filters.c,v 1.17 2003/06/10 20:03:39 imajes Exp $ */
+/* $Id: user_filters.c,v 1.18 2003/06/13 22:25:29 pollita Exp $ */
 
 #include php.h
 #include php_globals.h
@@ -28,7 +28,6 @@
 #define PHP_STREAM_BRIGADE_RES_NAMEuserfilter.bucket brigade
 #define PHP_STREAM_BUCKET_RES_NAME userfilter.bucket
 #define PHP_STREAM_FILTER_RES_NAME userfilter.filter
-#define PHP_STREAM_RES_NAME userfilter.stream
 
 struct php_user_filter_data {
zend_class_entry *ce;
@@ -40,7 +39,6 @@
 static int le_userfilters;
 static int le_bucket_brigade;
 static int le_bucket;
-static int le_stream;
 
 #define GET_FILTER_FROM_OBJ()  { \
zval **tmp; \
@@ -82,9 +80,10 @@
return FAILURE;
}
 
+   /* Filters will dispose of their brigades */
le_bucket_brigade = zend_register_list_destructors_ex(NULL, NULL, 
PHP_STREAM_BRIGADE_RES_NAME, module_number);
+   /* Brigades will dispose of their buckets */
le_bucket = zend_register_list_destructors_ex(NULL, NULL, 
PHP_STREAM_BUCKET_RES_NAME, module_number);
-   le_stream = zend_register_list_destructors_ex(NULL, NULL, PHP_STREAM_RES_NAME, 
module_number);

if (le_bucket_brigade == FAILURE) {
return FAILURE;
@@ -149,7 +148,7 @@
if (FAILURE == zend_hash_find(Z_OBJPROP_P(obj), stream, sizeof(stream), 
(void**)zstream)) {
/* Give the userfilter class a hook back to the stream */
ALLOC_INIT_ZVAL(zstream);
-   ZEND_REGISTER_RESOURCE(zstream, stream, le_stream);
+   php_stream_to_zval(stream, zstream);
add_property_zval(obj, stream, zstream);
/* add_property_zval increments the refcount which is unwanted here */
zval_ptr_dtor(zstream);
@@ -402,7 +401,7 @@
RETURN_FALSE;
}
 
-   ZEND_FETCH_RESOURCE(stream, php_stream *, zstream, -1, PHP_STREAM_RES_NAME, 
le_stream);
+   php_stream_from_zval(stream, zstream);
 
if (!(pbuffer = pemalloc(buffer_len, php_stream_is_persistent(stream {
RETURN_FALSE;



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-CVS] cvs: php4 /ext/standard user_filters.c

2003-01-07 Thread Wez Furlong
I don't think this makes much sense and would prefer it to default to
all filters if there is a good reason to keep the option.

--Wez.

On Tue, 7 Jan 2003, Sara Golemon wrote:

 pollita   Mon Jan  6 20:02:30 2003 EDT

   Modified files:
 /php4/ext/standarduser_filters.c
   Log:
   Add option to stream_get_filters() user-defined fiters vs. all filters, default to 
user only


 Index: php4/ext/standard/user_filters.c
 diff -u php4/ext/standard/user_filters.c:1.6 php4/ext/standard/user_filters.c:1.7
 --- php4/ext/standard/user_filters.c:1.6  Sun Jan  5 23:06:40 2003
 +++ php4/ext/standard/user_filters.c  Mon Jan  6 20:02:29 2003
 @@ -17,7 +17,7 @@
 +--+
  */

 -/* $Id: user_filters.c,v 1.6 2003/01/06 04:06:40 pollita Exp $ */
 +/* $Id: user_filters.c,v 1.7 2003/01/07 01:02:29 pollita Exp $ */

  #include php.h
  #include php_globals.h
 @@ -411,21 +411,27 @@
  {
  }

 -/* {{{ proto array stream_get_filters()
 +/* {{{ proto array stream_get_filters([bool system])
 Returns a list of registered filters */
  PHP_FUNCTION(stream_get_filters)
  {
   char *filter_name;
   int key_flags, filter_name_len = 0;
 + zend_bool return_system = 0;
   HashTable *filters_hash;

 - if (ZEND_NUM_ARGS() != 0) {
 - WRONG_PARAM_COUNT;
 + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |b, return_system) == 
FAILURE) {
 + RETURN_FALSE;
   }

   array_init(return_value);

 - filters_hash = php_get_stream_filters_hash();
 + /* TODO: Bug #21487 */
 +
 + if (return_system)
 + filters_hash = php_get_stream_filters_hash();
 + else
 + filters_hash = BG(user_filter_map);

   if (filters_hash) {
   for(zend_hash_internal_pointer_reset(filters_hash);



 --
 PHP CVS Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php





-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[PHP-CVS] cvs: php4 /ext/standard user_filters.c

2003-01-06 Thread Sara Golemon
pollita Mon Jan  6 20:02:30 2003 EDT

  Modified files:  
/php4/ext/standard  user_filters.c 
  Log:
  Add option to stream_get_filters() user-defined fiters vs. all filters, default to 
user only
  
  
Index: php4/ext/standard/user_filters.c
diff -u php4/ext/standard/user_filters.c:1.6 php4/ext/standard/user_filters.c:1.7
--- php4/ext/standard/user_filters.c:1.6Sun Jan  5 23:06:40 2003
+++ php4/ext/standard/user_filters.cMon Jan  6 20:02:29 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: user_filters.c,v 1.6 2003/01/06 04:06:40 pollita Exp $ */
+/* $Id: user_filters.c,v 1.7 2003/01/07 01:02:29 pollita Exp $ */
 
 #include php.h
 #include php_globals.h
@@ -411,21 +411,27 @@
 {
 }
 
-/* {{{ proto array stream_get_filters()
+/* {{{ proto array stream_get_filters([bool system])
Returns a list of registered filters */
 PHP_FUNCTION(stream_get_filters)
 {
char *filter_name;
int key_flags, filter_name_len = 0;
+   zend_bool return_system = 0;
HashTable *filters_hash;
 
-   if (ZEND_NUM_ARGS() != 0) {
-   WRONG_PARAM_COUNT;
+   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |b, return_system) == 
+FAILURE) {
+   RETURN_FALSE;
}
 
array_init(return_value);
 
-   filters_hash = php_get_stream_filters_hash();
+   /* TODO: Bug #21487 */
+
+   if (return_system)
+   filters_hash = php_get_stream_filters_hash();
+   else
+   filters_hash = BG(user_filter_map);
 
if (filters_hash) {
for(zend_hash_internal_pointer_reset(filters_hash);



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[PHP-CVS] cvs: php4 /ext/standard user_filters.c /main php_streams.h streams.c

2003-01-05 Thread Sara Golemon
pollita Sun Jan  5 23:06:40 2003 EDT

  Modified files:  
/php4/main  streams.c php_streams.h 
/php4/ext/standard  user_filters.c 
  Log:
  Expose stream_filters_hash so that it can be searched by stream_get_filters()
  
  
Index: php4/main/streams.c
diff -u php4/main/streams.c:1.140 php4/main/streams.c:1.141
--- php4/main/streams.c:1.140   Wed Jan  1 04:58:17 2003
+++ php4/main/streams.c Sun Jan  5 23:06:40 2003
@@ -20,7 +20,7 @@
+--+
  */
 
-/* $Id: streams.c,v 1.140 2003/01/01 09:58:17 wez Exp $ */
+/* $Id: streams.c,v 1.141 2003/01/06 04:06:40 pollita Exp $ */
 
 #define _GNU_SOURCE
 #include php.h
@@ -386,6 +386,11 @@
 
 /* {{{ filter API */
 static HashTable stream_filters_hash;
+
+PHPAPI HashTable *php_get_stream_filters_hash()
+{
+   return stream_filters_hash;
+}
 
 PHPAPI int php_stream_filter_register_factory(const char *filterpattern, 
php_stream_filter_factory *factory TSRMLS_DC)
 {
Index: php4/main/php_streams.h
diff -u php4/main/php_streams.h:1.64 php4/main/php_streams.h:1.65
--- php4/main/php_streams.h:1.64Thu Jan  2 08:31:10 2003
+++ php4/main/php_streams.h Sun Jan  5 23:06:40 2003
@@ -16,7 +16,7 @@
+--+
  */
 
-/* $Id: php_streams.h,v 1.64 2003/01/02 13:31:10 derick Exp $ */
+/* $Id: php_streams.h,v 1.65 2003/01/06 04:06:40 pollita Exp $ */
 
 #ifndef PHP_STREAMS_H
 #define PHP_STREAMS_H
@@ -603,9 +603,9 @@
(xmsg), (xcode), 0, 0, NULL TSRMLS_CC); } } while(0)

 
-/* Give other modules access to the url_stream_wrappers_hash */
+/* Give other modules access to the url_stream_wrappers_hash and stream_filters_hash 
+*/
 PHPAPI HashTable *php_stream_get_url_stream_wrappers_hash();
-
+PHPAPI HashTable *php_get_stream_filters_hash();
 #endif
 
 /*
Index: php4/ext/standard/user_filters.c
diff -u php4/ext/standard/user_filters.c:1.5 php4/ext/standard/user_filters.c:1.6
--- php4/ext/standard/user_filters.c:1.5Sun Jan  5 17:24:49 2003
+++ php4/ext/standard/user_filters.cSun Jan  5 23:06:40 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: user_filters.c,v 1.5 2003/01/05 22:24:49 pollita Exp $ */
+/* $Id: user_filters.c,v 1.6 2003/01/06 04:06:40 pollita Exp $ */
 
 #include php.h
 #include php_globals.h
@@ -417,6 +417,7 @@
 {
char *filter_name;
int key_flags, filter_name_len = 0;
+   HashTable *filters_hash;
 
if (ZEND_NUM_ARGS() != 0) {
WRONG_PARAM_COUNT;
@@ -424,10 +425,12 @@
 
array_init(return_value);
 
-   if (BG(user_filter_map)) {
-   for(zend_hash_internal_pointer_reset(BG(user_filter_map));
-   (key_flags = zend_hash_get_current_key_ex(BG(user_filter_map), 
filter_name, filter_name_len, NULL, 0, NULL)) != HASH_KEY_NON_EXISTANT;
-   zend_hash_move_forward(BG(user_filter_map)))
+   filters_hash = php_get_stream_filters_hash();
+
+   if (filters_hash) {
+   for(zend_hash_internal_pointer_reset(filters_hash);
+   (key_flags = zend_hash_get_current_key_ex(filters_hash, 
+filter_name, filter_name_len, NULL, 0, NULL)) != HASH_KEY_NON_EXISTANT;
+   zend_hash_move_forward(filters_hash))
if (key_flags == HASH_KEY_IS_STRING)
add_next_index_stringl(return_value, 
filter_name, filter_name_len, 1);
}



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php