diff options
-rw-r--r-- | client/mysql.cc | 2 | ||||
-rw-r--r-- | mysql-test/r/ssl.result | 16 | ||||
-rw-r--r-- | mysql-test/t/ssl.test | 4 | ||||
-rw-r--r-- | sql/sql_show.cc | 48 |
4 files changed, 46 insertions, 24 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index ffc12f22da8..8ae4c9df8cd 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -329,7 +329,7 @@ int main(int argc,char *argv[]) put_info((char*) glob_buffer.ptr(),INFO_INFO); #ifdef HAVE_OPENSSL - if(SSL_get_cipher(mysql.net.vio->ssl_)) { + if(mysql.net.vio->ssl_ && SSL_get_cipher(mysql.net.vio->ssl_)) { sprintf((char*) glob_buffer.ptr(), "SSL cipher in use is %s\n", SSL_get_cipher(mysql.net.vio->ssl_)); put_info((char*) glob_buffer.ptr(),INFO_INFO); diff --git a/mysql-test/r/ssl.result b/mysql-test/r/ssl.result new file mode 100644 index 00000000000..6636a336c45 --- /dev/null +++ b/mysql-test/r/ssl.result @@ -0,0 +1,16 @@ +Variable_name Value +SSL_CTX_sess_accept 0 +SSL_CTX_sess_accept_good 0 +SSL_CTX_sess_accept_renegotiate 0 +SSL_CTX_sess_cb_hits 0 +SSL_CTX_sess_number 0 +SSL_CTX_get_session_cache_mode SERVER +SSL_CTX_sess_get_cache_size 128 +SSL_CTX_get_verify_mode 7 +SSL_CTX_get_verify_depth 4294967295 +SSL_get_verify_mode 0 +SSL_get_verify_depth 0 +SSL_session_reused 0 +SSL_get_version +SSL_get_cipher +SSL_get_default_timeout 0 diff --git a/mysql-test/t/ssl.test b/mysql-test/t/ssl.test new file mode 100644 index 00000000000..da5e66fc835 --- /dev/null +++ b/mysql-test/t/ssl.test @@ -0,0 +1,4 @@ + + +SHOW STATUS LIKE 'SSL%'; + diff --git a/sql/sql_show.cc b/sql/sql_show.cc index a6e0c8a01f4..ef5fc50b4f7 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1155,6 +1155,7 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables) break; } #ifdef HAVE_OPENSSL + /* First group - functions relying on CTX */ case SHOW_SSL_CTX_SESS_ACCEPT: net_store_data(&packet2,(uint32) SSL_CTX_sess_accept(ssl_acceptor_fd->ssl_context_)); @@ -1167,10 +1168,6 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables) net_store_data(&packet2,(uint32) SSL_CTX_sess_accept_renegotiate(ssl_acceptor_fd->ssl_context_)); break; - case SHOW_SSL_GET_VERSION: - net_store_data(&packet2, - SSL_get_version(thd->net.vio->ssl_)); - break; case SHOW_SSL_CTX_SESS_CB_HITS: net_store_data(&packet2,(uint32) SSL_CTX_sess_cb_hits(ssl_acceptor_fd->ssl_context_)); @@ -1179,14 +1176,6 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables) net_store_data(&packet2,(uint32) SSL_CTX_sess_number(ssl_acceptor_fd->ssl_context_)); break; - case SHOW_SSL_SESSION_REUSED: - net_store_data(&packet2,(uint32) - SSL_session_reused(thd->net.vio->ssl_)); - break; - case SHOW_SSL_GET_DEFAULT_TIMEOUT: - net_store_data(&packet2,(uint32) - SSL_get_default_timeout(thd->net.vio->ssl_)); - break; case SHOW_SSL_CTX_SESS_GET_CACHE_SIZE: net_store_data(&packet2,(uint32) SSL_CTX_sess_get_cache_size(ssl_acceptor_fd->ssl_context_)); @@ -1195,21 +1184,10 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables) net_store_data(&packet2,(uint32) SSL_CTX_get_verify_mode(ssl_acceptor_fd->ssl_context_)); break; - case SHOW_SSL_GET_VERIFY_MODE: - net_store_data(&packet2,(uint32) - SSL_get_verify_mode(thd->net.vio->ssl_)); - break; case SHOW_SSL_CTX_GET_VERIFY_DEPTH: net_store_data(&packet2,(uint32) SSL_CTX_get_verify_depth(ssl_acceptor_fd->ssl_context_)); break; - case SHOW_SSL_GET_VERIFY_DEPTH: - net_store_data(&packet2,(uint32) - SSL_get_verify_depth(thd->net.vio->ssl_)); - break; - case SHOW_SSL_GET_CIPHER: - net_store_data(&packet2, SSL_get_cipher(thd->net.vio->ssl_)); - break; case SHOW_SSL_CTX_GET_SESSION_CACHE_MODE: switch(SSL_CTX_get_session_cache_mode(ssl_acceptor_fd->ssl_context_)) { @@ -1236,6 +1214,30 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables) break; } break; + /* First group - functions relying on SSL */ + case SHOW_SSL_GET_VERSION: + net_store_data(&packet2, thd->net.vio->ssl_ ? + SSL_get_version(thd->net.vio->ssl_) : ""); + break; + case SHOW_SSL_SESSION_REUSED: + net_store_data(&packet2,(uint32) (thd->net.vio->ssl_ ? + SSL_session_reused(thd->net.vio->ssl_) : 0)); + break; + case SHOW_SSL_GET_DEFAULT_TIMEOUT: + net_store_data(&packet2,(uint32) (thd->net.vio->ssl_ ? + SSL_get_default_timeout(thd->net.vio->ssl_):0)); + break; + case SHOW_SSL_GET_VERIFY_MODE: + net_store_data(&packet2,(uint32) (thd->net.vio->ssl_ ? + SSL_get_verify_mode(thd->net.vio->ssl_):0)); + break; + case SHOW_SSL_GET_VERIFY_DEPTH: + net_store_data(&packet2,(uint32) (thd->net.vio->ssl_ ? + SSL_get_verify_depth(thd->net.vio->ssl_):0)); + break; + case SHOW_SSL_GET_CIPHER: + net_store_data(&packet2, thd->net.vio->ssl_ ? SSL_get_cipher(thd->net.vio->ssl_) : ""); + break; #endif /* HAVE_OPENSSL */ } |