From c5c4d22c100e35d7feea1a92336aa41bef35c4ff Mon Sep 17 00:00:00 2001 From: Daniel Lowrey Date: Mon, 9 Mar 2015 22:55:17 -0600 Subject: [PATCH] Deprecate "session_meta_capture" SSL context option Meta data about encrypted streams is now available as part of the "crypto" key in the array returned by stream_get_meta_data(). This update deprecates the use of the "session_meta_capture" ssl context option in encrypted streams. --- ext/openssl/tests/session_meta_capture.phpt | 8 ++++---- ext/openssl/xp_ssl.c | 8 +++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ext/openssl/tests/session_meta_capture.phpt b/ext/openssl/tests/session_meta_capture.phpt index 1e5e1e67ee..f1f9610559 100644 --- a/ext/openssl/tests/session_meta_capture.phpt +++ b/ext/openssl/tests/session_meta_capture.phpt @@ -36,22 +36,22 @@ $clientCode = <<<'CODE' phpt_wait(); stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_SSLv3_CLIENT); - stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx); + @stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx); $meta = stream_context_get_options($clientCtx)['ssl']['session_meta']; var_dump($meta['protocol']); stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT); - stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx); + @stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx); $meta = stream_context_get_options($clientCtx)['ssl']['session_meta']; var_dump($meta['protocol']); stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT); - stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx); + @stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx); $meta = stream_context_get_options($clientCtx)['ssl']['session_meta']; var_dump($meta['protocol']); stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT); - stream_socket_client($serverUri, $errno, $errstr, 2, $clientFlags, $clientCtx); + @stream_socket_client($serverUri, $errno, $errstr, 2, $clientFlags, $clientCtx); $meta = stream_context_get_options($clientCtx)['ssl']['session_meta']; var_dump($meta['protocol']); CODE; diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c index adabf81a12..c2a0039547 100644 --- a/ext/openssl/xp_ssl.c +++ b/ext/openssl/xp_ssl.c @@ -1869,8 +1869,14 @@ static int php_openssl_enable_crypto(php_stream *stream, if (PHP_STREAM_CONTEXT(stream)) { zval *val; if (NULL != (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), - "ssl", "capture_session_meta")) && zend_is_true(val) + "ssl", "capture_session_meta")) ) { + php_error(E_DEPRECATED, + "capture_session_meta is deprecated; its information is now available via stream_get_meta_data()" + ); + } + + if (val && zend_is_true(val)) { zval meta_arr; ZVAL_ARR(&meta_arr, capture_session_meta(sslsock->ssl_handle)); php_stream_context_set_option(PHP_STREAM_CONTEXT(stream), "ssl", "session_meta", &meta_arr); -- 2.40.0