summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/mysql.cc5
-rw-r--r--include/mysql.h1
-rw-r--r--sql-common/client.c21
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 */