committed by
Sergei Golubchik
53 changed files with 572 additions and 351 deletions
-
1CMakeLists.txt
-
43client/CMakeLists.txt
-
1client/client_priv.h
-
35client/mysql.cc
-
1client/mysql_plugin.c
-
28client/mysqladmin.cc
-
15client/mysqlbinlog.cc
-
3client/mysqlcheck.c
-
4client/mysqldump.c
-
4client/mysqlimport.c
-
4client/mysqlshow.c
-
40client/mysqltest.cc
-
78cmake/iconv.cmake
-
12cmake/make_dist.cmake.in
-
27cmake/mariadb_connector_c.cmake
-
9include/my_global.h
-
1include/my_sys.h
-
7include/mysql_com.h
-
5include/sql_common.h
-
127libmariadb/CMakeLists.txt
-
97libmysql/CMakeLists.txt
-
4libmysqld/CMakeLists.txt
-
56mysql-test/r/openssl_1.result
-
12mysql-test/r/openssl_6975,tlsv10.result
-
12mysql-test/r/openssl_6975,tlsv12.result
-
16mysql-test/r/ssl.result
-
4mysql-test/r/ssl_8k_key.result
-
18mysql-test/r/ssl_ca.result
-
12mysql-test/r/ssl_compress.result
-
6mysql-test/r/ssl_timeout.result
-
14mysql-test/r/userstat.result
-
58mysql-test/t/openssl_1.test
-
10mysql-test/t/ssl.test
-
2mysql-test/t/ssl_7937.test
-
1mysql-test/t/ssl_8k_key-master.opt
-
2mysql-test/t/ssl_8k_key.test
-
17mysql-test/t/ssl_ca.test
-
6mysql-test/t/ssl_compress.test
-
3mysql-test/t/ssl_timeout.test
-
3mysql-test/t/userstat.test
-
3mysys/CMakeLists.txt
-
0mysys/get_password.c
-
7mysys/typelib.c
-
13sql-common/client.c
-
5sql-common/my_time.c
-
2sql/CMakeLists.txt
-
2sql/log_event.cc
-
1sql/sql_acl.cc
-
20tests/CMakeLists.txt
-
7tests/mysql_client_fw.c
-
59tests/mysql_client_test.c
-
3tests/nonblock-wrappers.h
-
3unittest/mysys/CMakeLists.txt
@ -0,0 +1,78 @@ |
|||
# |
|||
# Copyright (c) 2010 Michael Bell <michael.bell@web.de> |
|||
# 2015-2016 MariaDB Corporation AB |
|||
|
|||
if (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) |
|||
# Already in cache, be silent |
|||
set(ICONV_FIND_QUIETLY TRUE) |
|||
endif (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) |
|||
|
|||
|
|||
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS") |
|||
# There is some libiconv.so in /usr/local that must |
|||
# be avoided, iconv routines are in libc |
|||
find_library(ICONV_LIBRARIES NAMES c) |
|||
ELSEIF(APPLE) |
|||
find_path(ICONV_INCLUDE_DIR iconv.h PATHS |
|||
/usr/include/ |
|||
/opt/local/include/ |
|||
) |
|||
find_library(ICONV_LIBRARIES NAMES iconv libiconv PATHS |
|||
/usr/lib/ |
|||
/opt/local/lib/ |
|||
) |
|||
SET(ICONV_EXTERNAL TRUE) |
|||
ELSE() |
|||
find_path(ICONV_INCLUDE_DIR iconv.h) |
|||
find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2) |
|||
IF(ICONV_LIBRARIES) |
|||
SET(ICONV_EXTERNAL TRUE) |
|||
ELSE() |
|||
find_library(ICONV_LIBRARIES NAMES c) |
|||
ENDIF() |
|||
ENDIF() |
|||
|
|||
if (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) |
|||
set (ICONV_FOUND TRUE) |
|||
endif (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) |
|||
|
|||
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) |
|||
IF(ICONV_EXTERNAL) |
|||
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) |
|||
ENDIF() |
|||
|
|||
if (ICONV_FOUND) |
|||
include(CheckCSourceCompiles) |
|||
CHECK_C_SOURCE_COMPILES(" |
|||
#include <iconv.h> |
|||
int main(){ |
|||
iconv_t conv = 0; |
|||
const char* in = 0; |
|||
size_t ilen = 0; |
|||
char* out = 0; |
|||
size_t olen = 0; |
|||
iconv(conv, &in, &ilen, &out, &olen); |
|||
return 0; |
|||
} |
|||
" ICONV_SECOND_ARGUMENT_IS_CONST ) |
|||
endif (ICONV_FOUND) |
|||
|
|||
set (CMAKE_REQUIRED_INCLUDES) |
|||
set (CMAKE_REQUIRED_LIBRARIES) |
|||
|
|||
if (ICONV_FOUND) |
|||
if (NOT ICONV_FIND_QUIETLY) |
|||
message (STATUS "Found Iconv: ${ICONV_LIBRARIES}") |
|||
endif (NOT ICONV_FIND_QUIETLY) |
|||
else (ICONV_FOUND) |
|||
if (Iconv_FIND_REQUIRED) |
|||
message (FATAL_ERROR "Could not find Iconv") |
|||
endif (Iconv_FIND_REQUIRED) |
|||
endif (ICONV_FOUND) |
|||
|
|||
MARK_AS_ADVANCED( |
|||
ICONV_INCLUDE_DIR |
|||
ICONV_LIBRARIES |
|||
ICONV_EXTERNAL |
|||
ICONV_SECOND_ARGUMENT_IS_CONST |
|||
) |
@ -0,0 +1,27 @@ |
|||
# |
|||
# Configuration options for Connector/C |
|||
# |
|||
IF(WIN32) |
|||
# todo: libcurl for windows |
|||
ELSE() |
|||
SET(CC_LIBS ${LIBDL} ${LIBM} ${LIBPTHREAD}) |
|||
FIND_PACKAGE(OpenSSL) |
|||
#FIND_PACKAGE(GnuTLS) |
|||
IF(OPENSSL_FOUND) |
|||
SET(CC_LIBS ${CC_LIBS} ${OPENSSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES}) |
|||
SET(CC_CMAKE_OPTS "-DWITH_SSL=OPENSSL") |
|||
ELSEIF (GNUTLS_FOUND) |
|||
SET(CC_LIBS ${CC_LIBS} ${GNUTLS_LIBRARY}) |
|||
SET(CC_CMAKE_OPTS "-DWITH_SSL=GNUTLS") |
|||
ELSE() |
|||
SET(CC_CMAKE_OPTS "-DWITH_SSL=OFF") |
|||
ENDIF() |
|||
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/iconv.cmake) |
|||
IF(ICONV_FOUND) |
|||
IF(ICONV_EXTERNAL) |
|||
SET(CC_LIBS ${CC_LIBS} ${ICONV_LIBRARIES}) |
|||
ENDIF() |
|||
ENDIF() |
|||
ENDIF() |
|||
MARK_AS_ADVANCED(CC_LIBS CC_CMAKE_OPTS) |
|||
|
@ -0,0 +1,127 @@ |
|||
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/mariadb_connector_c.cmake) |
|||
|
|||
SET(CONNECTOR_C_INSTALLDIR "${CMAKE_CURRENT_BINARY_DIR}/mariadb-connector-c/${CMAKE_CFG_INTDIR}" CACHE STRING "") |
|||
SET(CONNECTOR_C_INSTALL_PREFIX ${CONNECTOR_C_INSTALLDIR}) |
|||
|
|||
|
|||
IF(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".") |
|||
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" CONNECTOR_C_INSTALL_PREFIX "${CONNECTOR_C_INSTALLDIR}") |
|||
ENDIF() |
|||
|
|||
SET(CONNECTOR_C_GIT_TAG "v3.0-cc-server-integ-0" CACHE STRING "Git tag or branch for connector/c") |
|||
IF(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/mariadb-connector-c) |
|||
# Building from source package |
|||
SET(CONNECTOR_C_SOURCE_DIR ${CMAKE_SOURCE_DIR}/mariadb-connector-c) |
|||
SET(GIT_PARAMS) |
|||
ELSE() |
|||
# Building from git, use git to get Connector/C |
|||
SET(GIT_PARAMS |
|||
GIT_REPOSITORY "https://github.com/MariaDB/mariadb-connector-c/" |
|||
GIT_TAG ${CONNECTOR_C_GIT_TAG} |
|||
) |
|||
SET(CONNECTOR_C_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/mariadb-connector-c-src) |
|||
ENDIF() |
|||
|
|||
IF(TARGET zlib) |
|||
GET_PROPERTY(ZLIB_LIBRARY_LOCATION TARGET zlib PROPERTY LOCATION) |
|||
ELSE() |
|||
SET(ZLIB_LIBRARY_LOCATION ${ZLIB_LIBRARY}) |
|||
ENDIF() |
|||
|
|||
|
|||
INCLUDE(ExternalProject) |
|||
ExternalProject_Add( |
|||
mariadb_connector_c |
|||
${GIT_PARAMS} |
|||
UPDATE_COMMAND "" |
|||
PATCH_COMMAND "" |
|||
SOURCE_DIR ${CONNECTOR_C_SOURCE_DIR} |
|||
INSTALL_DIR ${CONNECTOR_C_INSTALLDIR} |
|||
CMAKE_ARGS ${CC_CMAKE_OPTS} |
|||
-DCMAKE_INSTALL_PREFIX=${CONNECTOR_C_INSTALL_PREFIX} |
|||
-DWITH_EXTERNAL_ZLIB=1 |
|||
-DZLIB_FOUND=1 |
|||
-DZLIB_LIBRARY=${ZLIB_LIBRARY_LOCATION} |
|||
-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR} |
|||
-DSKIP_TESTS=1 |
|||
-DMARIADB_PORT=${MYSQL_TCP_PORT} |
|||
-DMARIADB_UNIX_ADDR=${MYSQL_UNIX_ADDR} |
|||
-DSHARED_LIB_MAJOR_VERSION=${SHARED_LIB_MAJOR_VERSION} |
|||
-DPLUGINDIR=${INSTALL_PLUGINDIR} |
|||
-DFOR_SERVER=1 |
|||
TEST_COMMAND "" |
|||
) |
|||
|
|||
IF(TARGET zlib) |
|||
ADD_DEPENDENCIES(mariadb_connector_c zlib) |
|||
ENDIF() |
|||
|
|||
SET(STATIC_LIB_LOCATION "${CONNECTOR_C_INSTALLDIR}/lib/mariadb/${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}") |
|||
|
|||
IF(WIN32) |
|||
SET(SHARED_LIB_LOCATION "${CONNECTOR_C_INSTALLDIR}/lib/mariadb/libmysql${CMAKE_SHARED_LIBRARY_SUFFIX}") |
|||
ELSE() |
|||
SET(SHARED_LIB_LOCATION "${CONNECTOR_C_INSTALLDIR}/lib/mariadb/libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX}") |
|||
ENDIF() |
|||
IF(WIN32) |
|||
# On Windows, we need to install import library. We also install PDB for debugging |
|||
STRING(REPLACE ".dll" ".lib" IMPORT_LIB_LOCATION ${SHARED_LIB_LOCATION}) |
|||
STRING(REPLACE ".dll" ".pdb" PDB_LOCATION ${SHARED_LIB_LOCATION}) |
|||
ENDIF() |
|||
|
|||
ADD_LIBRARY(mariadbclient STATIC IMPORTED GLOBAL) |
|||
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_LOCATION ${STATIC_LIB_LOCATION}) |
|||
ADD_DEPENDENCIES(mariadbclient mariadb_connector_c GenError) |
|||
|
|||
ADD_LIBRARY(libmariadb SHARED IMPORTED GLOBAL) |
|||
SET_TARGET_PROPERTIES(libmariadb PROPERTIES IMPORTED_LOCATION ${SHARED_LIB_LOCATION}) |
|||
ADD_DEPENDENCIES(libmariadb mariadb_connector_c GenError) |
|||
|
|||
SET(CONNECTOR_C_LIBS ${STATIC_LIB_LOCATION} ${CC_LIBS} ${ZLIB_LIBRARY} PARENT_SCOPE) |
|||
|
|||
|
|||
# INSTALL Connector/C files |
|||
|
|||
# For multiconfig generators (Visual Studio and Xcode) |
|||
# we need to replace CMAKE_CFG_INTDIR in filepath with CMAKE_INSTALL_CONFIG_NAME |
|||
# for cpack. |
|||
FUNCTION(GET_INSTALL_LOCATION LOC VARNAME) |
|||
SET(val ${LOC}) |
|||
IF (NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".") |
|||
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}" val ${val}) |
|||
ENDIF() |
|||
SET(${VARNAME} ${val} PARENT_SCOPE) |
|||
ENDFUNCTION() |
|||
|
|||
GET_INSTALL_LOCATION(${STATIC_LIB_LOCATION} STATIC_LIB_INSTALL_LOCATION) |
|||
INSTALL(FILES ${STATIC_LIB_INSTALL_LOCATION} DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) |
|||
|
|||
IF(UNIX) |
|||
STRING(REPLACE "mysqlclient" "mysqlclient_r" |
|||
STATIC_LIB_R_INSTALL_LOCATION "${STATIC_LIB_INSTALL_LOCATION}") |
|||
INSTALL(FILES ${STATIC_LIB_R_INSTALL_LOCATION} OPTIONAL DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) |
|||
ENDIF() |
|||
|
|||
# Install shared library |
|||
IF(WIN32) |
|||
# On Windows, we need to install import library. We also install PDB for debugging |
|||
SET(SHARED_LIB_FILES ${SHARED_LIB_LOCATION} ${IMPLIB_LOCATION} ${PDB_LOCATION}) |
|||
ELSE() |
|||
STRING(REPLACE "mysqlclient" "mysqlclient_r" SHARED_LIB_R_LOCATION ${SHARED_LIB_LOCATION}) |
|||
STRING(REPLACE "mysqlclient.so" "mysqlclient.so.${SHARED_LIB_MAJOR_VERSION}" |
|||
SHARED_LIB_LINK1_LOCATION ${SHARED_LIB_LOCATION}) |
|||
STRING(REPLACE "mysqlclient.so" "mysqlclient.so.${SHARED_LIB_MAJOR_VERSION}.0.0" |
|||
SHARED_LIB_LINK2_LOCATION ${SHARED_LIB_LOCATION}) |
|||
|
|||
SET(SHARED_LIB_FILES ${SHARED_LIB_LOCATION} ${SHARED_LIB_R_LOCATION} |
|||
${SHARED_LIB_LINK1_LOCATION} ${SHARED_LIB_LINK2_LOCATION}) |
|||
LIST(REMOVE_DUPLICATES SHARED_LIB_FILES) |
|||
ENDIF() |
|||
|
|||
FOREACH(file ${SHARED_LIB_FILES}) |
|||
GET_INSTALL_LOCATION(${file} loc) |
|||
IF(loc) |
|||
INSTALL(FILES ${loc} DESTINATION ${INSTALL_LIBDIR} COMPONENT SharedLibraries OPTIONAL) |
|||
ENDIF() |
|||
ENDFOREACH() |
|||
|
@ -1,2 +1,2 @@ |
|||
Variable_name Value |
|||
Ssl_cipher DHE-RSA-AES256-SHA |
|||
have_ssl |
|||
1 |
@ -1,9 +1,9 @@ |
|||
# connect with read timeout so SLEEP() should timeout |
|||
connect ssl_con,localhost,root,,,,,SSL read_timeout=5; |
|||
# Check ssl turned on |
|||
SHOW STATUS LIKE 'Ssl_cipher'; |
|||
Variable_name Value |
|||
Ssl_cipher DHE-RSA-AES256-SHA |
|||
SELECT (VARIABLE_VALUE <> '') AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher'; |
|||
have_ssl |
|||
1 |
|||
SELECT SLEEP(600); |
|||
ERROR HY000: Lost connection to MySQL server during query |
|||
connection default; |
|||
|
@ -1,3 +1,2 @@ |
|||
--loose-ssl-key=$MYSQL_TEST_DIR/std_data/server8k-key.pem |
|||
--loose-ssl-cert=$MYSQL_TEST_DIR/std_data/server8k-cert.pem |
|||
--loose-ssl-cipher=DHE-RSA-AES256-SHA |
Write
Preview
Loading…
Cancel
Save
Reference in new issue