diff options
author | Johannes Schlüter <johannes@php.net> | 2012-10-31 16:54:11 +0100 |
---|---|---|
committer | Johannes Schlüter <johannes@php.net> | 2012-10-31 16:54:11 +0100 |
commit | 44b1a07d851c267bb0c0c47857629ef3f790215a (patch) | |
tree | 66b125d6869015adfe1e1afcc3503f8f599108dd /ext/pdo_mysql/mysql_driver.c | |
parent | a0a34f5bcaf1b3d7b567a7d6646cfb1f75156092 (diff) | |
download | php-git-44b1a07d851c267bb0c0c47857629ef3f790215a.tar.gz |
Allow setting SHA256 auth public key as option
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 |