summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2015-01-09 14:00:00 +0100
committerSergei Golubchik <serg@mariadb.org>2015-02-10 10:21:16 +0100
commit83c0866082cd630cada815add97bbf2d09ac8ab3 (patch)
tree55a0e7cbbfb4d90b36648a8f2436336e9f143ddf
parent0d676fa0b745257673e0f986472209d313aa4dae (diff)
downloadmariadb-git-83c0866082cd630cada815add97bbf2d09ac8ab3.tar.gz
new read-only server variable version_ssl_library
-rw-r--r--mysql-test/suite.pm3
-rw-r--r--mysql-test/suite/sys_vars/inc/sysvars_server.inc6
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_server_embedded.result16
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result16
-rw-r--r--mysql-test/suite/sys_vars/r/version_ssl_library_basic.result2
-rw-r--r--mysql-test/suite/sys_vars/t/version_ssl_library_basic.test2
-rw-r--r--sql/sys_vars.cc16
7 files changed, 51 insertions, 10 deletions
diff --git a/mysql-test/suite.pm b/mysql-test/suite.pm
index ffb34f5a8cf..b063f32c506 100644
--- a/mysql-test/suite.pm
+++ b/mysql-test/suite.pm
@@ -63,7 +63,8 @@ sub skip_combinations {
$skip{'include/check_ipv6.inc'} = 'No IPv6' unless ipv6_ok();
$skip{'t/openssl_6975.test'} = 'no or too old openssl'
- unless ! IS_WINDOWS and ! system "openssl ciphers TLSv1.2 >/dev/null 2>&1";
+ unless $::mysqld_variables{'version-ssl-library'} =~ /OpenSSL (\S+)/
+ and $1 ge "1.0.1";
%skip;
}
diff --git a/mysql-test/suite/sys_vars/inc/sysvars_server.inc b/mysql-test/suite/sys_vars/inc/sysvars_server.inc
index b7c1c996f0b..fb6121d7cc3 100644
--- a/mysql-test/suite/sys_vars/inc/sysvars_server.inc
+++ b/mysql-test/suite/sys_vars/inc/sysvars_server.inc
@@ -21,14 +21,14 @@ select * from information_schema.system_variables
'have_openssl',
'have_symlink',
'hostname',
- 'large_files_support',
+ 'large_files_support', 'log_tc_size',
'lower_case_file_system',
'lower_case_table_names',
'open_files_limit',
'system_time_zone',
'version_comment',
'version_compile_machine', 'version_compile_os',
- 'version_malloc_library', 'log_tc_size', 'version'
+ 'version_malloc_library', 'version_ssl_library', 'version'
)
order by variable_name;
@@ -49,7 +49,7 @@ select VARIABLE_NAME, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT,
'system_time_zone',
'version_comment',
'version_compile_machine', 'version_compile_os',
- 'version_malloc_library', 'version'
+ 'version_malloc_library', 'version_ssl_library', 'version'
)
order by variable_name;
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
index c2312becbbd..2bf6814633f 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
@@ -11,14 +11,14 @@ variable_name not in (
'have_openssl',
'have_symlink',
'hostname',
-'large_files_support',
+'large_files_support', 'log_tc_size',
'lower_case_file_system',
'lower_case_table_names',
'open_files_limit',
'system_time_zone',
'version_comment',
'version_compile_machine', 'version_compile_os',
-'version_malloc_library', 'log_tc_size', 'version'
+'version_malloc_library', 'version_ssl_library', 'version'
)
order by variable_name;
VARIABLE_NAME AUTOCOMMIT
@@ -4026,7 +4026,7 @@ where variable_name in (
'system_time_zone',
'version_comment',
'version_compile_machine', 'version_compile_os',
-'version_malloc_library', 'version'
+'version_malloc_library', 'version_ssl_library', 'version'
)
order by variable_name;
VARIABLE_NAME HAVE_OPENSSL
@@ -4159,6 +4159,16 @@ NUMERIC_BLOCK_SIZE NULL
ENUM_VALUE_LIST NULL
READ_ONLY YES
COMMAND_LINE_ARGUMENT NULL
+VARIABLE_NAME VERSION_SSL_LIBRARY
+VARIABLE_SCOPE GLOBAL
+VARIABLE_TYPE VARCHAR
+VARIABLE_COMMENT Version of the used SSL library
+NUMERIC_MIN_VALUE NULL
+NUMERIC_MAX_VALUE NULL
+NUMERIC_BLOCK_SIZE NULL
+ENUM_VALUE_LIST NULL
+READ_ONLY YES
+COMMAND_LINE_ARGUMENT NULL
select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE,
VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT
from information_schema.system_variables
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
index 8a793eaeec9..0f3b71b1421 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
@@ -11,14 +11,14 @@ variable_name not in (
'have_openssl',
'have_symlink',
'hostname',
-'large_files_support',
+'large_files_support', 'log_tc_size',
'lower_case_file_system',
'lower_case_table_names',
'open_files_limit',
'system_time_zone',
'version_comment',
'version_compile_machine', 'version_compile_os',
-'version_malloc_library', 'log_tc_size', 'version'
+'version_malloc_library', 'version_ssl_library', 'version'
)
order by variable_name;
VARIABLE_NAME AUTOCOMMIT
@@ -4754,7 +4754,7 @@ where variable_name in (
'system_time_zone',
'version_comment',
'version_compile_machine', 'version_compile_os',
-'version_malloc_library', 'version'
+'version_malloc_library', 'version_ssl_library', 'version'
)
order by variable_name;
VARIABLE_NAME HAVE_OPENSSL
@@ -4887,6 +4887,16 @@ NUMERIC_BLOCK_SIZE NULL
ENUM_VALUE_LIST NULL
READ_ONLY YES
COMMAND_LINE_ARGUMENT NULL
+VARIABLE_NAME VERSION_SSL_LIBRARY
+VARIABLE_SCOPE GLOBAL
+VARIABLE_TYPE VARCHAR
+VARIABLE_COMMENT Version of the used SSL library
+NUMERIC_MIN_VALUE NULL
+NUMERIC_MAX_VALUE NULL
+NUMERIC_BLOCK_SIZE NULL
+ENUM_VALUE_LIST NULL
+READ_ONLY YES
+COMMAND_LINE_ARGUMENT NULL
select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE,
VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT
from information_schema.system_variables
diff --git a/mysql-test/suite/sys_vars/r/version_ssl_library_basic.result b/mysql-test/suite/sys_vars/r/version_ssl_library_basic.result
new file mode 100644
index 00000000000..c37bb6f21af
--- /dev/null
+++ b/mysql-test/suite/sys_vars/r/version_ssl_library_basic.result
@@ -0,0 +1,2 @@
+set @@global.version_malloc_library=1;
+ERROR HY000: Variable 'version_malloc_library' is a read only variable
diff --git a/mysql-test/suite/sys_vars/t/version_ssl_library_basic.test b/mysql-test/suite/sys_vars/t/version_ssl_library_basic.test
new file mode 100644
index 00000000000..3a244084e7f
--- /dev/null
+++ b/mysql-test/suite/sys_vars/t/version_ssl_library_basic.test
@@ -0,0 +1,2 @@
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+set @@global.version_malloc_library=1;
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
index 1ff72fc11fc..1a4628d0d72 100644
--- a/sql/sys_vars.cc
+++ b/sql/sys_vars.cc
@@ -3377,6 +3377,22 @@ static Sys_var_charptr Sys_malloc_library(
READ_ONLY GLOBAL_VAR(malloc_library), CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(MALLOC_LIBRARY));
+#ifdef HAVE_YASSL
+#include <openssl/ssl.h>
+#define SSL_LIBRARY "YaSSL " YASSL_VERSION
+#elif HAVE_OPENSSL
+#include <openssl/opensslv.h>
+#define SSL_LIBRARY OPENSSL_VERSION_TEXT
+#else
+#error No SSL?
+#endif
+
+static char *ssl_library;
+static Sys_var_charptr Sys_ssl_library(
+ "version_ssl_library", "Version of the used SSL library",
+ READ_ONLY GLOBAL_VAR(ssl_library), CMD_LINE_HELP_ONLY,
+ IN_SYSTEM_CHARSET, DEFAULT(SSL_LIBRARY));
+
static Sys_var_ulong Sys_net_wait_timeout(
"wait_timeout",
"The number of seconds the server waits for activity on a "