From 80eccf26cdd469440ac2fb47bf897df89f0ce8af Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Apr 2006 11:26:21 +0200 Subject: [PATCH] Add new function mysql_get_ssl_cipher to libmysl and use it from client to avoid dependency on SSL libs from mysql client. include/mysql.h: Add new function mysql_get_ssl_cipher sql-common/client.c: Add new function mysql_get_ssl_cipher, will return the cipher used for the current connection to the server. --- client/mysql.cc | 5 ++--- include/mysql.h | 1 + sql-common/client.c | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index 2001056dea1..a0bc6f52f29 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 925a4525378..6217ce631b5 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 cd50960164b..a923e22a74a 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 */