wez Thu Jul 22 08:12:28 2004 EDT
Modified files:
/php-src/ext/standard basic_functions.c file.c streamsfuncs.c
streamsfuncs.h
Log:
Added stream_context_get_default() which returns the default context option.
You may then set options that affect streams operations for the whole script.
Added stream_socket_enable_crypto() which allows you to turn on or off a crypto
layer (eg: SSL/TLS) on stream, if supported by the underlying transport.
Registered a bunch of constants for that.
http://cvs.php.net/diff.php/php-src/ext/standard/basic_functions.c?r1=1.675&r2=1.676&ty=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.675
php-src/ext/standard/basic_functions.c:1.676
--- php-src/ext/standard/basic_functions.c:1.675 Wed Jul 21 17:17:56 2004
+++ php-src/ext/standard/basic_functions.c Thu Jul 22 08:12:28 2004
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.c,v 1.675 2004/07/21 21:17:56 andrey Exp $ */
+/* $Id: basic_functions.c,v 1.676 2004/07/22 12:12:28 wez Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -587,6 +587,7 @@
PHP_FE(stream_context_set_params,
NULL)
PHP_FE(stream_context_set_option,
NULL)
PHP_FE(stream_context_get_options,
NULL)
+ PHP_FE(stream_context_get_default,
NULL)
PHP_FE(stream_filter_prepend,
NULL)
PHP_FE(stream_filter_append,
NULL)
PHP_FE(stream_socket_client,
second_and_third_args_force_ref)
@@ -595,6 +596,7 @@
PHP_FE(stream_socket_get_name,
NULL)
PHP_FE(stream_socket_recvfrom,
fourth_arg_force_ref)
PHP_FE(stream_socket_sendto,
NULL)
+ PHP_FE(stream_socket_enable_crypto,
NULL)
PHP_FE(stream_copy_to_stream,
NULL)
PHP_FE(stream_get_contents,
NULL)
PHP_FE(fgetcsv,
NULL)
http://cvs.php.net/diff.php/php-src/ext/standard/file.c?r1=1.383&r2=1.384&ty=u
Index: php-src/ext/standard/file.c
diff -u php-src/ext/standard/file.c:1.383 php-src/ext/standard/file.c:1.384
--- php-src/ext/standard/file.c:1.383 Mon Jul 19 03:19:44 2004
+++ php-src/ext/standard/file.c Thu Jul 22 08:12:28 2004
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: file.c,v 1.383 2004/07/19 07:19:44 andi Exp $ */
+/* $Id: file.c,v 1.384 2004/07/22 12:12:28 wez Exp $ */
/* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */
@@ -213,6 +213,15 @@
REGISTER_LONG_CONSTANT("STREAM_CLIENT_PERSISTENT",
PHP_STREAM_CLIENT_PERSISTENT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("STREAM_CLIENT_ASYNC_CONNECT",
PHP_STREAM_CLIENT_ASYNC_CONNECT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("STREAM_CLIENT_CONNECT",
PHP_STREAM_CLIENT_CONNECT, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_SSLv2_CLIENT",
STREAM_CRYPTO_METHOD_SSLv2_CLIENT, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_SSLv3_CLIENT",
STREAM_CRYPTO_METHOD_SSLv3_CLIENT, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_SSLv23_CLIENT",
STREAM_CRYPTO_METHOD_SSLv23_CLIENT, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_TLS_CLIENT",
STREAM_CRYPTO_METHOD_TLS_CLIENT, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_SSLv2_SERVER",
STREAM_CRYPTO_METHOD_SSLv2_SERVER, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_SSLv3_SERVER",
STREAM_CRYPTO_METHOD_SSLv3_SERVER, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_SSLv23_SERVER",
STREAM_CRYPTO_METHOD_SSLv23_SERVER, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("STREAM_CRYPTO_METHOD_TLS_SERVER",
STREAM_CRYPTO_METHOD_TLS_SERVER, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("STREAM_PEEK", STREAM_PEEK, CONST_CS |
CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("STREAM_OOB", STREAM_OOB, CONST_CS | CONST_PERSISTENT);
http://cvs.php.net/diff.php/php-src/ext/standard/streamsfuncs.c?r1=1.35&r2=1.36&ty=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.35
php-src/ext/standard/streamsfuncs.c:1.36
--- php-src/ext/standard/streamsfuncs.c:1.35 Wed Jun 16 19:57:25 2004
+++ php-src/ext/standard/streamsfuncs.c Thu Jul 22 08:12:28 2004
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.35 2004/06/16 23:57:25 abies Exp $ */
+/* $Id: streamsfuncs.c,v 1.36 2004/07/22 12:12:28 wez Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -928,6 +928,30 @@
}
/* }}} */
+/* {{{ 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)
+{
+ zval *params = NULL;
+ php_stream_context *context;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|a", ¶ms) ==
FAILURE) {
+ RETURN_FALSE;
+ }
+
+ if (FG(default_context) == NULL) {
+ FG(default_context) = php_stream_context_alloc();
+ }
+ context = FG(default_context);
+
+ if (params) {
+ parse_context_options(context, params);
+ }
+
+ php_stream_context_to_zval(context, return_value);
+}
+/* }}} */
+
/* {{{ proto resource stream_context_create([array options])
Create a file context and optionally set parameters */
PHP_FUNCTION(stream_context_create)
@@ -1163,6 +1187,35 @@
}
RETURN_LONG(ret == 0 ? 0 : EOF);
+}
+/* }}} */
+
+/* {{{ proto bool stream_socket_enable_crypto(resource stream, bool enable [, int
cryptokind, resource sessionstream])
+ Enable or disable a specific kind of crypto on the stream */
+PHP_FUNCTION(stream_socket_enable_crypto)
+{
+ long cryptokind;
+ zval *zstream, *zsessstream = NULL;
+ php_stream *stream, *sessstream = NULL;
+ zend_bool enable;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb|lr", &zstream,
&enable, &cryptokind, &zsessstream) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+ php_stream_from_zval(stream, &zstream);
+
+ if (ZEND_NUM_ARGS() >= 3) {
+ if (zsessstream) {
+ php_stream_from_zval(sessstream, zsessstream);
+ }
+
+ if (php_stream_xport_crypto_setup(stream, cryptokind, sessstream
TSRMLS_CC) < 0) {
+ RETURN_FALSE;
+ }
+ }
+
+ RETURN_BOOL(php_stream_xport_crypto_enable(stream, enable TSRMLS_CC) < 0 ? 0 :
1);
}
/* }}} */
http://cvs.php.net/diff.php/php-src/ext/standard/streamsfuncs.h?r1=1.8&r2=1.9&ty=u
Index: php-src/ext/standard/streamsfuncs.h
diff -u php-src/ext/standard/streamsfuncs.h:1.8 php-src/ext/standard/streamsfuncs.h:1.9
--- php-src/ext/standard/streamsfuncs.h:1.8 Thu Jan 8 12:32:52 2004
+++ php-src/ext/standard/streamsfuncs.h Thu Jul 22 08:12:28 2004
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.h,v 1.8 2004/01/08 17:32:52 sniper Exp $ */
+/* $Id: streamsfuncs.h,v 1.9 2004/07/22 12:12:28 wez Exp $ */
/* Flags for stream_socket_client */
#define PHP_STREAM_CLIENT_PERSISTENT 1
@@ -47,8 +47,10 @@
PHP_FUNCTION(stream_context_set_params);
PHP_FUNCTION(stream_context_set_option);
PHP_FUNCTION(stream_context_get_options);
+PHP_FUNCTION(stream_context_get_default);
PHP_FUNCTION(stream_filter_prepend);
PHP_FUNCTION(stream_filter_append);
+PHP_FUNCTION(stream_socket_enable_crypto);
/*
* Local variables:
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php