From: Daniel Lowrey Date: Tue, 10 Mar 2015 04:55:17 +0000 (-0600) Subject: Deprecate "session_meta_capture" SSL context option X-Git-Tag: PRE_PHP7_NSAPI_REMOVAL~726 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c5c4d22c100e35d7feea1a92336aa41bef35c4ff;p=php 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. --- 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);