Commit 98a2008f authored by unknown's avatar unknown
Browse files

Backport fix for mysql client not using SSl library directly

 - Add function mysql_get_ssl_cipher
 - Use function mysql_get_ssl_cipher from mysql


client/mysql.cc:
  Backport fix for mysql client not using SSl library directly
include/mysql.h:
  Backport fix for mysql client not using SSl library directly
libmysql/libmysql.def:
  Backport fix for mysql client not using SSl library directly
libmysqld/libmysqld.def:
  Backport fix for mysql client not using SSl library directly
sql-common/client.c:
  Backport fix for mysql client not using SSl library directly
parent a66fc918
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -3235,10 +3235,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 ((status= 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));
		  status);
    else
#endif /* HAVE_OPENSSL */
      tee_puts("SSL:\t\t\tNot in use", stdout);
+1 −0
Original line number Diff line number Diff line
@@ -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,
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ EXPORTS
	mysql_get_proto_info
	mysql_get_server_info
	mysql_get_client_version
	mysql_get_ssl_cipher
	mysql_info
	mysql_init
	mysql_insert_id
+1 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ EXPORTS
	mysql_get_host_info
	mysql_get_proto_info
	mysql_get_server_info
	mysql_get_ssl_cipher
	mysql_info
	mysql_init
	mysql_insert_id
+21 −0
Original line number Diff line number Diff line
@@ -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)
    DBUG_RETURN(SSL_get_cipher_name((SSL*)mysql->net.vio->ssl_arg));
  DBUG_RETURN(NULL);
}

#endif /* HAVE_OPENSSL */