diff options
Diffstat (limited to 'ext/pdo_mysql/mysql_driver.c')
-rw-r--r-- | ext/pdo_mysql/mysql_driver.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c index aa7109b516..527cb1c3b8 100644 --- a/ext/pdo_mysql/mysql_driver.c +++ b/ext/pdo_mysql/mysql_driver.c @@ -138,7 +138,7 @@ static int pdo_mysql_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt, zval *in /* }}} */ /* {{{ mysql_handle_closer */ -static int mysql_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */ +static int mysql_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) { pdo_mysql_db_handle *H = (pdo_mysql_db_handle *)dbh->driver_data; @@ -709,6 +709,20 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_ efree(ssl_cipher); } } + +#if MYSQL_VERSION_ID > 50605 || defined(MYSQLI_USE_MYSQLND) + { + char *public_key = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_SERVER_PUBLIC_KEY, NULL TSRMLS_CC); + if (public_key) { + if (mysql_options(H->server, MYSQL_SERVER_PUBLIC_KEY, public_key)) { + pdo_mysql_error(dbh); + efree(public_key); + goto cleanup; + } + efree(public_key); + } + } +#endif } #ifdef PDO_MYSQL_HAS_CHARSET |