diff --git a/client/mysql.cc b/client/mysql.cc index 2001056dea1fa10906d14a063fe9eeffbbe9faf9..a0bc6f52f296b37d51587073d499d0ba591cf987 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -3212,10 +3212,9 @@ com_status(String *buffer __attribute__((unused)), mysql_free_result(result); } #ifdef HAVE_OPENSSL - if (mysql.net.vio && mysql.net.vio->ssl_arg && - SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg)) + if (mysql_get_ssl_cipher(&mysql)) tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n", - SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg)); + mysql_get_ssl_cipher(&mysql)); else #endif /* HAVE_OPENSSL */ tee_puts("SSL:\t\t\tNot in use", stdout); diff --git a/include/mysql.h b/include/mysql.h index 925a452537858ad8307a7a49b87ce4bc4934fb4c..6217ce631b527aa35f360e6b76a5c05c76a75805 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -409,6 +409,7 @@ MYSQL * STDCALL mysql_init(MYSQL *mysql); my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, const char *cert, const char *ca, const char *capath, const char *cipher); +const char * STDCALL mysql_get_ssl_cipher(MYSQL *mysql); my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, const char *passwd, const char *db); MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, diff --git a/sql-common/client.c b/sql-common/client.c index 84df31b74400522f0d5d82d55b5fc4bf4619f8bb..1303b26c325442e574307e4bea2d8d4d0afa7748 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -1535,6 +1535,27 @@ mysql_ssl_free(MYSQL *mysql __attribute__((unused))) mysql->connector_fd = 0; DBUG_VOID_RETURN; } + + +/* + Return the SSL cipher (if any) used for current + connection to the server. + + SYNOPSYS + mysql_get_ssl_cipher() + mysql pointer to the mysql connection + +*/ + +const char * STDCALL +mysql_get_ssl_cipher(MYSQL *mysql) +{ + DBUG_ENTER("mysql_get_ssl_cipher"); + if (mysql->net.vio && mysql->net.vio->ssl_arg) + SSL_get_cipher_name((SSL*)mysql->net.vio->ssl_arg); + DBUG_RETURN(NULL); +} + #endif /* HAVE_OPENSSL */