lbarnaud                Thu Nov 13 05:47:48 2008 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/standard/tests/streams 
                                        stream_context_get_params_001.phpt 

  Modified files:              
    /php-src/ext/standard       basic_functions.c streamsfuncs.c 
                                streamsfuncs.h 
    /php-src    NEWS 
  Log:
  MFH: Added stream_context_get_params()
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.725.2.31.2.64.2.69&r2=1.725.2.31.2.64.2.70&diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.69 
php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.70
--- php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.69 Wed Nov  5 
21:35:02 2008
+++ php-src/ext/standard/basic_functions.c      Thu Nov 13 05:47:47 2008
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: basic_functions.c,v 1.725.2.31.2.64.2.69 2008/11/05 21:35:02 lbarnaud 
Exp $ */
+/* $Id: basic_functions.c,v 1.725.2.31.2.64.2.70 2008/11/13 05:47:47 lbarnaud 
Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -2402,6 +2402,11 @@
 ZEND_END_ARG_INFO()
 
 static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_params, 0, 
ZEND_RETURN_VALUE, 1)
+       ZEND_ARG_INFO(0, stream_or_context)
+ZEND_END_ARG_INFO()
+
+static
 ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_default, 0, 0, 0)
        ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
 ZEND_END_ARG_INFO()
@@ -3540,6 +3545,7 @@
        PHP_FE(stream_select,                                                   
                                                arginfo_stream_select)
        PHP_FE(stream_context_create,                                           
                                        arginfo_stream_context_create)
        PHP_FE(stream_context_set_params,                                       
                                        arginfo_stream_context_set_params)
+       PHP_FE(stream_context_get_params,                                       
                                        arginfo_stream_context_get_params)
        PHP_FE(stream_context_set_option,                                       
                                        arginfo_stream_context_set_option)
        PHP_FE(stream_context_get_options,                                      
                                        arginfo_stream_context_get_options)
        PHP_FE(stream_context_get_default,                                      
                                        arginfo_stream_context_get_default)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.58.2.6.2.15.2.29&r2=1.58.2.6.2.15.2.30&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.29 
php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.30
--- php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.29      Tue Nov  4 
16:46:03 2008
+++ php-src/ext/standard/streamsfuncs.c Thu Nov 13 05:47:47 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.29 2008/11/04 16:46:03 lbarnaud Exp $ 
*/
+/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.30 2008/11/13 05:47:47 lbarnaud Exp $ 
*/
 
 #include "php.h"
 #include "php_globals.h"
@@ -1038,6 +1038,34 @@
 }
 /* }}} */
 
+/* {{{ proto bool stream_context_get_params(resource context|resource stream)
+   Get parameters of a file context */
+PHP_FUNCTION(stream_context_get_params)
+{
+       zval *zcontext, *options;
+       php_stream_context *context;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zcontext) == 
FAILURE) {
+               RETURN_FALSE;
+       }
+
+       context = decode_context_param(zcontext TSRMLS_CC);
+       if (!context) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid 
stream/context parameter");
+               RETURN_FALSE;
+       }
+
+       array_init(return_value);
+       if (context->notifier && context->notifier->ptr && 
context->notifier->func == user_space_stream_notifier) {
+               add_assoc_zval_ex(return_value, ZEND_STRS("notification"), 
context->notifier->ptr);
+               Z_ADDREF_P(context->notifier->ptr);
+       }
+       ALLOC_INIT_ZVAL(options);
+       ZVAL_ZVAL(options, context->options, 1, 0);
+       add_assoc_zval_ex(return_value, ZEND_STRS("options"), options);
+}
+/* }}} */
+
 /* {{{ proto resource stream_context_get_default([array options])
    Get a handle on the default file/stream context and optionally set 
parameters */
 PHP_FUNCTION(stream_context_get_default)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.h?r1=1.13.2.1.2.4.2.3&r2=1.13.2.1.2.4.2.4&diff_format=u
Index: php-src/ext/standard/streamsfuncs.h
diff -u php-src/ext/standard/streamsfuncs.h:1.13.2.1.2.4.2.3 
php-src/ext/standard/streamsfuncs.h:1.13.2.1.2.4.2.4
--- php-src/ext/standard/streamsfuncs.h:1.13.2.1.2.4.2.3        Sat Aug 16 
10:57:56 2008
+++ php-src/ext/standard/streamsfuncs.h Thu Nov 13 05:47:47 2008
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: streamsfuncs.h,v 1.13.2.1.2.4.2.3 2008/08/16 10:57:56 bjori Exp $ */
+/* $Id: streamsfuncs.h,v 1.13.2.1.2.4.2.4 2008/11/13 05:47:47 lbarnaud Exp $ */
 
 /* Flags for stream_socket_client */
 #define PHP_STREAM_CLIENT_PERSISTENT   1
@@ -46,6 +46,7 @@
 PHP_FUNCTION(stream_wrapper_restore);
 PHP_FUNCTION(stream_context_create);
 PHP_FUNCTION(stream_context_set_params);
+PHP_FUNCTION(stream_context_get_params);
 PHP_FUNCTION(stream_context_set_option);
 PHP_FUNCTION(stream_context_get_options);
 PHP_FUNCTION(stream_context_get_default);
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.374&r2=1.2027.2.547.2.965.2.375&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.374 
php-src/NEWS:1.2027.2.547.2.965.2.375
--- php-src/NEWS:1.2027.2.547.2.965.2.374       Mon Nov 10 18:54:30 2008
+++ php-src/NEWS        Thu Nov 13 05:47:47 2008
@@ -10,6 +10,7 @@
   parameter validation. (Felipe)
 - Changed openssl info to show the shared library version number. (Scott)
 
+- Added stream_context_get_params() function. (Arnaud)
 - Added optional parameter "new" to sybase_connect() (Timm)
 - Added parse_ini_string() function. (grange at lemonde dot fr, Arnaud) 
 - Added str_getcsv() function. (Sara)

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt
+++ php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt
--TEST--
stream_context_get_params()
--FILE--
<?php

$ctx = stream_context_create();
var_dump($ctx);
var_dump(stream_context_get_params($ctx));

var_dump(stream_context_set_option($ctx, "foo","bar","baz"));
var_dump(stream_context_get_params($ctx));

var_dump(stream_context_set_params($ctx, array("notification" => 
"stream_notification_callback")));
var_dump(stream_context_get_params($ctx));

var_dump(stream_context_set_params($ctx, array("notification" => 
array("stream","notification_callback"))));
var_dump(stream_context_get_params($ctx));

var_dump(stream_context_get_params($ctx));
var_dump(stream_context_get_options($ctx));
var_dump(stream_context_get_params($ctx));
var_dump(stream_context_get_options($ctx));

?>
--EXPECTF--
resource(%d) of type (stream-context)
array(1) {
  [%u|b%"options"]=>
  array(0) {
  }
}
bool(true)
array(1) {
  [%u|b%"options"]=>
  array(1) {
    [%u|b%"foo"]=>
    array(1) {
      [%u|b%"bar"]=>
      %unicode|string%(3) "baz"
    }
  }
}
bool(true)
array(2) {
  [%u|b%"notification"]=>
  %unicode|string%(28) "stream_notification_callback"
  [%u|b%"options"]=>
  array(1) {
    [%u|b%"foo"]=>
    array(1) {
      [%u|b%"bar"]=>
      %unicode|string%(3) "baz"
    }
  }
}
bool(true)
array(2) {
  [%u|b%"notification"]=>
  array(2) {
    [0]=>
    %unicode|string%(6) "stream"
    [1]=>
    %unicode|string%(21) "notification_callback"
  }
  [%u|b%"options"]=>
  array(1) {
    [%u|b%"foo"]=>
    array(1) {
      [%u|b%"bar"]=>
      %unicode|string%(3) "baz"
    }
  }
}
array(2) {
  [%u|b%"notification"]=>
  array(2) {
    [0]=>
    %unicode|string%(6) "stream"
    [1]=>
    %unicode|string%(21) "notification_callback"
  }
  [%u|b%"options"]=>
  array(1) {
    [%u|b%"foo"]=>
    array(1) {
      [%u|b%"bar"]=>
      %unicode|string%(3) "baz"
    }
  }
}
array(1) {
  [%u|b%"foo"]=>
  array(1) {
    [%u|b%"bar"]=>
    %unicode|string%(3) "baz"
  }
}
array(2) {
  [%u|b%"notification"]=>
  array(2) {
    [0]=>
    %unicode|string%(6) "stream"
    [1]=>
    %unicode|string%(21) "notification_callback"
  }
  [%u|b%"options"]=>
  array(1) {
    [%u|b%"foo"]=>
    array(1) {
      [%u|b%"bar"]=>
      %unicode|string%(3) "baz"
    }
  }
}
array(1) {
  [%u|b%"foo"]=>
  array(1) {
    [%u|b%"bar"]=>
    %unicode|string%(3) "baz"
  }
}



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

Reply via email to