com php-src: Merge branch 'PHP-5.6' into PHP-7.0: ext/mysqli/mysqli.c ext/mysqli/tests/connect.inc ext/mysqlnd/mysqlnd.c ext/mysqlnd/
mysqlnd_enum_n_def.h ext/mysqlnd/mysqlnd_net.c ext/mysqlnd/mysqlnd_structs.h

From: Date: Tue, 27 Oct 2015 12:32:45 +0000
Subject: com php-src: Merge branch 'PHP-5.6' into PHP-7.0: ext/mysqli/mysqli.c ext/mysqli/tests/connect.inc ext/mysqlnd/mysqlnd.c ext/mysqlnd/
mysqlnd_enum_n_def.h ext/mysqlnd/mysqlnd_net.c ext/mysqlnd/mysqlnd_structs.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-89542@lists.php.net to get a copy of this message
Commit: c133515811c2a53039f0df1538c0f14c49aa0307 Author: Andrey Hristov <andrey@php.net> Tue, 27 Oct 2015 13:32:45 +0100 Parents: a53510239f629b36f1fdccc860670872463eeb77 6d51b7b2e3468601acdaaf9041c9131b5aa47f98 Branches: master Link: http://git.php.net/?p=php-src..git;a=commitdiff;h=c133515811c2a53039f0df1538c0f14c49aa0307 Log: Merge branch 'PHP-5.6' into PHP-7.0 Changed paths: MM ext/mysqli/mysqli.c MM ext/mysqli/tests/connect.inc MM ext/mysqlnd/mysqlnd.c MM ext/mysqlnd/mysqlnd_enum_n_def.h MM ext/mysqlnd/mysqlnd_net.c MM ext/mysqlnd/mysqlnd_structs.h Diff: diff --cc ext/mysqlnd/mysqlnd_net.c index 710d6fa,3e8d099..c0a913b --- a/ext/mysqlnd/mysqlnd_net.c +++ b/ext/mysqlnd/mysqlnd_net.c @@@ -889,11 -900,12 +908,12 @@@ MYSQLND_METHOD(mysqlnd_net, consume_une */ /* {{{ mysqlnd_net::enable_ssl */ static enum_func_status -MYSQLND_METHOD(mysqlnd_net, enable_ssl)(MYSQLND_NET * const net TSRMLS_DC) +MYSQLND_METHOD(mysqlnd_net, enable_ssl)(MYSQLND_NET * const net) { #ifdef MYSQLND_SSL_SUPPORTED - php_stream_context * context = php_stream_context_alloc(TSRMLS_C); - php_stream * net_stream = net->data->m.get_stream(net TSRMLS_CC); + php_stream_context * context = php_stream_context_alloc(); + php_stream * net_stream = net->data->m.get_stream(net); + zend_bool any_flag = FALSE; DBG_ENTER("mysqlnd_net::enable_ssl"); if (!context) { @@@ -902,14 -914,9 +922,9 @@@ if (net->data->options.ssl_key) { zval key_zval; - ZVAL_STRING(&key_zval, net->data->options.ssl_key, 0); + ZVAL_STRING(&key_zval, net->data->options.ssl_key); php_stream_context_set_option(context, "ssl", "local_pk", &key_zval); - } - { - zval verify_peer_zval; - ZVAL_BOOL(&verify_peer_zval, net->data->options.ssl_verify_peer); - php_stream_context_set_option(context, "ssl", "verify_peer", &verify_peer_zval); - php_stream_context_set_option(context, "ssl", "verify_peer_name", &verify_peer_zval); + any_flag = TRUE; } if (net->data->options.ssl_cert) { zval cert_zval; @@@ -921,34 -929,50 +937,53 @@@ } if (net->data->options.ssl_ca) { zval cafile_zval; - ZVAL_STRING(&cafile_zval, net->data->options.ssl_ca, 0); + ZVAL_STRING(&cafile_zval, net->data->options.ssl_ca); php_stream_context_set_option(context, "ssl", "cafile", &cafile_zval); + any_flag = TRUE; } if (net->data->options.ssl_capath) { zval capath_zval; - ZVAL_STRING(&capath_zval, net->data->options.ssl_capath, 0); + ZVAL_STRING(&capath_zval, net->data->options.ssl_capath); php_stream_context_set_option(context, "ssl", "capath", &capath_zval); + any_flag = TRUE; } if (net->data->options.ssl_passphrase) { zval passphrase_zval; - ZVAL_STRING(&passphrase_zval, net->data->options.ssl_passphrase, 0); + ZVAL_STRING(&passphrase_zval, net->data->options.ssl_passphrase); php_stream_context_set_option(context, "ssl", "passphrase", &passphrase_zval); + any_flag = TRUE; } if (net->data->options.ssl_cipher) { zval cipher_zval; - ZVAL_STRING(&cipher_zval, net->data->options.ssl_cipher, 0); + ZVAL_STRING(&cipher_zval, net->data->options.ssl_cipher); php_stream_context_set_option(context, "ssl", "ciphers", &cipher_zval); + any_flag = TRUE; + } + { + zval verify_peer_zval; + zend_bool verify; + + if (net->data->options.ssl_verify_peer == MYSQLND_SSL_PEER_DEFAULT) { + net->data->options.ssl_verify_peer = any_flag? MYSQLND_SSL_PEER_DEFAULT_ACTION:MYSQLND_SSL_PEER_DONT_VERIFY; + } + + verify = net->data->options.ssl_verify_peer == MYSQLND_SSL_PEER_VERIFY? TRUE:FALSE; + + DBG_INF_FMT("VERIFY=%d", verify); + ZVAL_BOOL(&verify_peer_zval, verify); + php_stream_context_set_option(context, "ssl", "verify_peer", &verify_peer_zval); + php_stream_context_set_option(context, "ssl", "verify_peer_name", &verify_peer_zval); } - +#if PHP_API_VERSION >= 20131106 php_stream_context_set(net_stream, context); - if (php_stream_xport_crypto_setup(net_stream, STREAM_CRYPTO_METHOD_TLS_CLIENT, NULL TSRMLS_CC) < 0 || - php_stream_xport_crypto_enable(net_stream, 1 TSRMLS_CC) < 0) +#else + php_stream_context_set(net_stream, context); +#endif + if (php_stream_xport_crypto_setup(net_stream, STREAM_CRYPTO_METHOD_TLS_CLIENT, NULL) < 0 || + php_stream_xport_crypto_enable(net_stream, 1) < 0) { DBG_ERR("Cannot connect to MySQL by using SSL"); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot connect to MySQL by using SSL"); + php_error_docref(NULL, E_WARNING, "Cannot connect to MySQL by using SSL"); DBG_RETURN(FAIL); } net->data->ssl = TRUE;

« previous php.cvs (#89542) next »