]> granicus.if.org Git - php/commitdiff
Deprecate "session_meta_capture" SSL context option
authorDaniel Lowrey <rdlowrey@php.net>
Tue, 10 Mar 2015 04:55:17 +0000 (22:55 -0600)
committerDaniel Lowrey <rdlowrey@php.net>
Tue, 10 Mar 2015 05:15:57 +0000 (23:15 -0600)
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
ext/openssl/xp_ssl.c

index 1e5e1e67ee50e8bfeae6c50ca853c476b02c5a00..f1f96105591fd302bc85e3a47fae8d464c34e0d7 100644 (file)
@@ -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;
index adabf81a12ba7d7cc79ee816ffb8324cf49b91bc..c2a003954778734f67c14e3603e42a9c3fda7a2c 100644 (file)
@@ -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);