You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-08 14:02:17 +03:00
Merge tag 'v3.0.6' into 10.3-server
This commit is contained in:
@@ -14,8 +14,13 @@ grep -o ">build-[0-9]*" index.html | grep -o "[0-9]*" | tac | while read -r line
|
||||
echo "**************************************************************************"
|
||||
wget -q -o /dev/null -O $line.html http://hasky.askmonty.org/archive/10.3/build-$line/kvm-deb-jessie-amd64/debs/binary/
|
||||
grep -o ">[^\"]*\.deb" $line.html | grep -o "[^>]*\.deb" | while read -r file ; do
|
||||
if [[ "$file" =~ ^mariadb-plugin.* ]] ;
|
||||
then
|
||||
echo "skipped file: $file"
|
||||
else
|
||||
echo "download file: $file"
|
||||
wget -q -o /dev/null -O .travis/build/$file http://hasky.askmonty.org/archive/10.3/build-$line/kvm-deb-jessie-amd64/debs/binary/$file
|
||||
fi
|
||||
done
|
||||
|
||||
exit
|
||||
|
@@ -17,7 +17,7 @@ print_usage () {
|
||||
gen_cert_subject () {
|
||||
local fqdn="$1"
|
||||
[[ "${fqdn}" != "" ]] || print_error "FQDN cannot be blank"
|
||||
echo "/C=/ST=/O=/localityName=/CN=${fqdn}/organizationalUnitName=/emailAddress=/"
|
||||
echo "/C=XX/ST=X/O=X/localityName=X/CN=${fqdn}/organizationalUnitName=X/emailAddress=X/"
|
||||
}
|
||||
|
||||
main () {
|
||||
|
19
.travis/server-replace-submodule.sh
Normal file
19
.travis/server-replace-submodule.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
# get latest server
|
||||
git clone -b ${SERVER_BRANCH} https://github.com/mariadb/server ../workdir-server
|
||||
|
||||
# copy C/C into libmariadb in server
|
||||
ls -l ../workdir-server/libmariadb
|
||||
cp -r . ../workdir-server/libmariadb
|
||||
|
||||
cd ../workdir-server
|
||||
# don't pull in submodules. We want the latest C/C as libmariadb
|
||||
git config cmake.update-submodules no
|
||||
# build latest server with latest C/C as libmariadb
|
||||
# skip to build some storage engines to speed up the build
|
||||
cmake -DPLUGIN_MROONGA=NO -DPLUGIN_ROCKSDB=NO -DPLUGIN_SPIDER=NO -DPLUGIN_TOKUDB=NO
|
||||
make -j9
|
||||
|
||||
cd mysql-test/
|
||||
./mysql-test-run.pl --suite=main ${TEST_OPTION} --parallel=auto
|
@@ -5,7 +5,6 @@
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
|
||||
INCLUDE(CheckFunctionExists)
|
||||
IF(COMMAND CMAKE_POLICY)
|
||||
SET(OLD_POLICIES )
|
||||
SET(NEW_POLICIES CMP0003 CMP0022 CMP0023)
|
||||
FOREACH(TYPE OLD NEW)
|
||||
FOREACH(P ${${TYPE}_POLICIES})
|
||||
@@ -37,7 +36,7 @@ SET(CC_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR 3)
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR 0)
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH 5)
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH 6)
|
||||
SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
|
||||
MATH(EXPR MARIADB_PACKAGE_VERSION_ID "${CPACK_PACKAGE_VERSION_MAJOR} * 10000 +
|
||||
${CPACK_PACKAGE_VERSION_MINOR} * 100 +
|
||||
@@ -256,6 +255,11 @@ INCLUDE(${CC_SOURCE_DIR}/cmake/CheckFunctions.cmake)
|
||||
# check for various types
|
||||
INCLUDE(${CC_SOURCE_DIR}/cmake/CheckTypes.cmake)
|
||||
|
||||
IF(NOT DEFAULT_CHARSET)
|
||||
SET(DEFAULT_CHARSET "latin1")
|
||||
ENDIF()
|
||||
|
||||
|
||||
# convert SSL options to uppercase
|
||||
IF(WITH_SSL)
|
||||
STRING(TOUPPER ${WITH_SSL} WITH_SSL)
|
||||
|
@@ -31,13 +31,13 @@ IF(NOT INSTALL_LAYOUT)
|
||||
ENDIF()
|
||||
|
||||
SET(INSTALL_LAYOUT ${INSTALL_LAYOUT} CACHE
|
||||
STRING "Installation layout. Currently supported options are DEFAULT (tar.gz and zip) and RPM")
|
||||
STRING "Installation layout. Currently supported options are DEFAULT (tar.gz and zip), RPM and DEB")
|
||||
|
||||
# On Windows we only provide zip and .msi. Latter one uses a different packager.
|
||||
IF(UNIX)
|
||||
IF(INSTALL_LAYOUT MATCHES "RPM")
|
||||
SET(libmariadb_prefix "/usr")
|
||||
ELSEIF(INSTALL_LAYOUT MATCHES "DEFAULT")
|
||||
ELSEIF(INSTALL_LAYOUT MATCHES "DEFAULT|DEB")
|
||||
SET(libmariadb_prefix ${CMAKE_INSTALL_PREFIX})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
@@ -47,7 +47,7 @@ IF(CMAKE_DEFAULT_PREFIX_INITIALIZED_BY_DEFAULT)
|
||||
ENDIF()
|
||||
|
||||
# check if the specified installation layout is valid
|
||||
SET(VALID_INSTALL_LAYOUTS "DEFAULT" "RPM")
|
||||
SET(VALID_INSTALL_LAYOUTS "DEFAULT" "RPM" "DEB")
|
||||
LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" layout_no)
|
||||
IF(layout_no EQUAL -1)
|
||||
MESSAGE(FATAL_ERROR "Invalid installation layout ${INSTALL_LAYOUT}. Please specify one of the following layouts: ${VALID_INSTALL_LAYOUTS}")
|
||||
@@ -64,14 +64,12 @@ ENDIF()
|
||||
# DEFAULT layout
|
||||
#
|
||||
|
||||
|
||||
|
||||
SET(INSTALL_BINDIR_DEFAULT "bin")
|
||||
SET(INSTALL_LIBDIR_DEFAULT "lib/mariadb")
|
||||
SET(INSTALL_INCLUDEDIR_DEFAULT "include/mariadb")
|
||||
SET(INSTALL_DOCDIR_DEFAULT "docs")
|
||||
SET(INSTALL_PLUGINDIR_DEFAULT "lib/mariadb/plugin")
|
||||
|
||||
SET(LIBMARIADB_STATIC_DEFAULT "mariadbclient")
|
||||
#
|
||||
# RPM layout
|
||||
#
|
||||
@@ -85,6 +83,22 @@ ELSE()
|
||||
ENDIF()
|
||||
SET(INSTALL_INCLUDEDIR_RPM "include")
|
||||
SET(INSTALL_DOCDIR_RPM "docs")
|
||||
SET(LIBMARIADB_STATIC_RPM "mariadbclient")
|
||||
|
||||
#
|
||||
# DEB layout
|
||||
#
|
||||
SET(INSTALL_BINDIR_DEB "bin")
|
||||
SET(INSTALL_LIBDIR_DEB "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
IF(PLUGINDIR_DEB)
|
||||
SET(INSTALL_PLUGINDIR_DEB "${INSTALL_LIBDIR_DEB}/${PLUGINDIR_DEB}/plugin")
|
||||
ELSE()
|
||||
SET(INSTALL_PLUGINDIR_DEB "${INSTALL_LIBDIR_DEB}/mariadb/plugin")
|
||||
ENDIF()
|
||||
SET(INSTALL_INCLUDEDIR_DEB "include/mariadb")
|
||||
SET(LIBMARIADB_STATIC_DEB "mariadb")
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Overwrite defaults
|
||||
@@ -119,3 +133,6 @@ FOREACH(dir "BIN" "LIB" "INCLUDE" "DOCS" "PLUGIN")
|
||||
SET(INSTALL_${dir}DIR ${INSTALL_${dir}DIR_${INSTALL_LAYOUT}})
|
||||
MARK_AS_ADVANCED(INSTALL_${dir}DIR)
|
||||
ENDFOREACH()
|
||||
|
||||
SET(LIBMARIADB_STATIC_NAME ${LIBMARIADB_STATIC_${INSTALL_LAYOUT}})
|
||||
MARK_AS_ADVANCED(LIBMARIADB_STATIC_NAME)
|
||||
|
@@ -265,3 +265,5 @@
|
||||
|
||||
#cmakedefine SOCKET_SIZE_TYPE @SOCKET_SIZE_TYPE@
|
||||
|
||||
#define MARIADB_DEFAULT_CHARSET "@DEFAULT_CHARSET@"
|
||||
|
||||
|
@@ -387,7 +387,7 @@ ADD_LIBRARY(mariadbclient STATIC ${MARIADB_OBJECTS} ${EMPTY_FILE})
|
||||
TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS})
|
||||
|
||||
IF(UNIX)
|
||||
ADD_LIBRARY(libmariadb SHARED ${libmariadb_RC} ${MARIADB_OBJECTS} ${EMPTY_FILE} mariadbclient.def)
|
||||
ADD_LIBRARY(libmariadb SHARED ${libmariadb_RC} ${MARIADB_OBJECTS} ${EMPTY_FILE})
|
||||
SET_TARGET_PROPERTIES(libmariadb PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}")
|
||||
ELSE()
|
||||
ADD_LIBRARY(libmariadb SHARED ${libmariadb_RC} mariadbclient.def)
|
||||
@@ -407,7 +407,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
IF (NOT WITH_ASAN)
|
||||
TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined")
|
||||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES (libmariadb "${CC_BINARY_DIR}/libmariadb/mariadbclient.def")
|
||||
SET_TARGET_PROPERTIES(libmariadb PROPERTIES LINK_FLAGS "${CC_BINARY_DIR}/libmariadb/mariadbclient.def")
|
||||
ENDIF()
|
||||
|
||||
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}")
|
||||
@@ -436,6 +436,10 @@ SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION
|
||||
${CPACK_PACKAGE_VERSION_MAJOR}
|
||||
SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
|
||||
|
||||
IF(NOT WIN32)
|
||||
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES OUTPUT_NAME "${LIBMARIADB_STATIC_NAME}")
|
||||
ENDIF()
|
||||
|
||||
INSTALL(TARGETS mariadbclient
|
||||
COMPONENT Development
|
||||
DESTINATION ${INSTALL_LIBDIR})
|
||||
@@ -443,6 +447,7 @@ INSTALL(TARGETS libmariadb
|
||||
COMPONENT SharedLibraries
|
||||
DESTINATION ${INSTALL_LIBDIR})
|
||||
|
||||
|
||||
IF(WIN32)
|
||||
# On Windows, install PDB
|
||||
INSTALL(FILES $<TARGET_PDB_FILE:libmariadb> DESTINATION "${INSTALL_LIBDIR}"
|
||||
|
@@ -22,7 +22,7 @@
|
||||
#include <mariadb_ctype.h>
|
||||
#include <ma_string.h>
|
||||
|
||||
MARIADB_CHARSET_INFO *ma_default_charset_info = (MARIADB_CHARSET_INFO *)&mariadb_compiled_charsets[21];
|
||||
MARIADB_CHARSET_INFO *ma_default_charset_info; /* will be set in mysql_server_init */
|
||||
MARIADB_CHARSET_INFO *ma_charset_bin= (MARIADB_CHARSET_INFO *)&mariadb_compiled_charsets[32];
|
||||
MARIADB_CHARSET_INFO *ma_charset_latin1= (MARIADB_CHARSET_INFO *)&mariadb_compiled_charsets[5];
|
||||
MARIADB_CHARSET_INFO *ma_charset_utf8_general_ci= (MARIADB_CHARSET_INFO *)&mariadb_compiled_charsets[21];
|
||||
|
@@ -90,6 +90,7 @@ extern my_bool mysql_ps_subsystem_initialized;
|
||||
extern my_bool mysql_handle_local_infile(MYSQL *mysql, const char *filename);
|
||||
extern const MARIADB_CHARSET_INFO * mysql_find_charset_nr(uint charsetnr);
|
||||
extern const MARIADB_CHARSET_INFO * mysql_find_charset_name(const char * const name);
|
||||
extern my_bool set_default_charset_by_name(const char *cs_name, myf flags __attribute__((unused)));
|
||||
extern int run_plugin_auth(MYSQL *mysql, char *data, uint data_len,
|
||||
const char *data_plugin, const char *db);
|
||||
extern int net_add_multi_command(NET *net, uchar command, const uchar *packet,
|
||||
@@ -996,7 +997,7 @@ mysql_init(MYSQL *mysql)
|
||||
goto error;
|
||||
mysql->options.report_data_truncation= 1;
|
||||
mysql->options.connect_timeout=CONNECT_TIMEOUT;
|
||||
mysql->charset= ma_default_charset_info;
|
||||
mysql->charset= mysql_find_charset_name(MARIADB_DEFAULT_CHARSET);
|
||||
mysql->methods= &MARIADB_DEFAULT_METHODS;
|
||||
strcpy(mysql->net.sqlstate, "00000");
|
||||
mysql->net.last_error[0]= mysql->net.last_errno= 0;
|
||||
@@ -1483,14 +1484,14 @@ MYSQL *mthd_my_real_connect(MYSQL *mysql, const char *host, const char *user,
|
||||
if (mysql->options.charset_name)
|
||||
mysql->charset= mysql_find_charset_name(mysql->options.charset_name);
|
||||
else
|
||||
mysql->charset=ma_default_charset_info;
|
||||
mysql->charset=mysql_find_charset_name(MARIADB_DEFAULT_CHARSET);
|
||||
|
||||
if (!mysql->charset)
|
||||
{
|
||||
net->last_errno=CR_CANT_READ_CHARSET;
|
||||
sprintf(net->last_error,ER(net->last_errno),
|
||||
mysql->options.charset_name ? mysql->options.charset_name :
|
||||
"unknown",
|
||||
MARIADB_DEFAULT_CHARSET,
|
||||
"compiled_in");
|
||||
goto error;
|
||||
}
|
||||
@@ -1724,9 +1725,9 @@ my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
|
||||
int rc;
|
||||
|
||||
if (mysql->options.charset_name)
|
||||
mysql->charset =mysql_find_charset_name(mysql->options.charset_name);
|
||||
mysql->charset= mysql_find_charset_name(mysql->options.charset_name);
|
||||
else
|
||||
mysql->charset=ma_default_charset_info;
|
||||
mysql->charset=mysql_find_charset_name(MARIADB_DEFAULT_CHARSET);
|
||||
|
||||
mysql->user= strdup(user ? user : "");
|
||||
mysql->passwd= strdup(passwd ? passwd : "");
|
||||
@@ -1744,7 +1745,7 @@ my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
|
||||
free(s_passwd);
|
||||
free(s_db);
|
||||
|
||||
if (db && !(mysql->db= strdup(db)))
|
||||
if (!mysql->db && db && !(mysql->db= strdup(db)))
|
||||
{
|
||||
SET_CLIENT_ERROR(mysql, CR_OUT_OF_MEMORY, SQLSTATE_UNKNOWN, 0);
|
||||
rc= 1;
|
||||
@@ -3488,6 +3489,7 @@ static void mysql_once_init()
|
||||
ma_init(); /* Will init threads */
|
||||
init_client_errs();
|
||||
get_default_configuration_dirs();
|
||||
set_default_charset_by_name(MARIADB_DEFAULT_CHARSET, 0);
|
||||
if (mysql_client_plugin_init())
|
||||
{
|
||||
#ifdef _WIN32
|
||||
|
@@ -726,15 +726,14 @@ ssize_t ma_tls_write_async(MARIADB_PVIO *pvio,
|
||||
ssize_t ma_tls_read(MARIADB_TLS *ctls, const uchar* buffer, size_t length)
|
||||
{
|
||||
ssize_t rc;
|
||||
MYSQL *mysql= (MYSQL *)SSL_get_app_data(ctls->ssl);
|
||||
MARIADB_PVIO *pvio= mysql->net.pvio;
|
||||
MARIADB_PVIO *pvio= ctls->pvio;
|
||||
|
||||
while ((rc= SSL_read((SSL *)ctls->ssl, (void *)buffer, (int)length)) < 0)
|
||||
{
|
||||
int error= SSL_get_error((SSL *)ctls->ssl, rc);
|
||||
if (error != SSL_ERROR_WANT_READ)
|
||||
return rc;
|
||||
if (pvio->methods->wait_io_or_timeout(pvio, TRUE, mysql->options.read_timeout) < 1)
|
||||
if (pvio->methods->wait_io_or_timeout(pvio, TRUE, pvio->mysql->options.read_timeout) < 1)
|
||||
return rc;
|
||||
}
|
||||
return rc;
|
||||
@@ -743,15 +742,14 @@ ssize_t ma_tls_read(MARIADB_TLS *ctls, const uchar* buffer, size_t length)
|
||||
ssize_t ma_tls_write(MARIADB_TLS *ctls, const uchar* buffer, size_t length)
|
||||
{
|
||||
ssize_t rc;
|
||||
MYSQL *mysql= (MYSQL *)SSL_get_app_data(ctls->ssl);
|
||||
MARIADB_PVIO *pvio= mysql->net.pvio;
|
||||
MARIADB_PVIO *pvio= ctls->pvio;
|
||||
|
||||
while ((rc= SSL_write((SSL *)ctls->ssl, (void *)buffer, (int)length)) <= 0)
|
||||
{
|
||||
int error= SSL_get_error((SSL *)ctls->ssl, rc);
|
||||
if (error != SSL_ERROR_WANT_WRITE)
|
||||
return rc;
|
||||
if (pvio->methods->wait_io_or_timeout(pvio, TRUE, mysql->options.write_timeout) < 1)
|
||||
if (pvio->methods->wait_io_or_timeout(pvio, TRUE, pvio->mysql->options.write_timeout) < 1)
|
||||
return rc;
|
||||
}
|
||||
return rc;
|
||||
|
@@ -772,7 +772,7 @@ my_bool pvio_socket_connect(MARIADB_PVIO *pvio, MA_PVIO_CINFO *cinfo)
|
||||
/* Abstract socket */
|
||||
if (cinfo->unix_socket[0] == '@')
|
||||
{
|
||||
strcpy(UNIXaddr.sun_path + 1, cinfo->unix_socket + 1);
|
||||
strncpy(UNIXaddr.sun_path + 1, cinfo->unix_socket + 1, 107);
|
||||
port_length+= offsetof(struct sockaddr_un, sun_path);
|
||||
}
|
||||
else
|
||||
|
@@ -1084,6 +1084,7 @@ static int test_auth256(MYSQL *my)
|
||||
if (!mysql_client_find_plugin(mysql, "sha256_password", 3))
|
||||
{
|
||||
diag("sha256_password plugin not available");
|
||||
mysql_close(mysql);
|
||||
return SKIP;
|
||||
}
|
||||
|
||||
@@ -1097,6 +1098,7 @@ static int test_auth256(MYSQL *my)
|
||||
if (!num_rows)
|
||||
{
|
||||
diag("server doesn't support sha256 authentication");
|
||||
mysql_close(mysql);
|
||||
return SKIP;
|
||||
}
|
||||
|
||||
@@ -1365,12 +1367,13 @@ static int test_conc315(MYSQL *mysql)
|
||||
return SKIP;
|
||||
|
||||
mysql_get_optionv(mysql, MYSQL_SET_CHARSET_NAME, (void *)&csname);
|
||||
FAIL_UNLESS(strcmp(csname, "utf8") == 0, "Wrong default character set");
|
||||
diag("csname=%s", csname);
|
||||
FAIL_UNLESS(strcmp(csname, MARIADB_DEFAULT_CHARSET) == 0, "Wrong default character set");
|
||||
|
||||
rc= mysql_change_user(mysql, username, password, schema);
|
||||
check_mysql_rc(rc, mysql);
|
||||
mysql_get_optionv(mysql, MYSQL_SET_CHARSET_NAME, (void *)&csname);
|
||||
FAIL_UNLESS(strcmp(csname, "utf8") == 0, "Wrong default character set");
|
||||
FAIL_UNLESS(strcmp(csname, MARIADB_DEFAULT_CHARSET) == 0, "Wrong default character set");
|
||||
return OK;
|
||||
}
|
||||
#ifndef WIN32
|
||||
@@ -1531,7 +1534,7 @@ struct my_tests_st my_tests[] = {
|
||||
{"test_conc327", test_conc327, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
{"test_conc317", test_conc317, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
#endif
|
||||
{"test_conc315", test_conc315, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
{"test_conc315", test_conc315, TEST_CONNECTION_NEW, 0, NULL, NULL},
|
||||
{"test_expired_pw", test_expired_pw, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
{"test_conc276", test_conc276, TEST_CONNECTION_NONE, 0, NULL, NULL},
|
||||
{"test_mdev13100", test_mdev13100, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
|
@@ -30,7 +30,7 @@ FOREACH(plugin ${PLUGINS_DYNAMIC})
|
||||
SET(TARGET ${plugin})
|
||||
# Get dependencies
|
||||
SET(DYNAMIC_TARGETS ${DYNAMIC_TARGETS} ${TARGET})
|
||||
GET_PROPERTY(FILE TARGET ${TARGET} PROPERTY LOCATION)
|
||||
SET(FILE ${CC_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TARGET}.dll)
|
||||
MESSAGE(STATUS "Location for ${TARGET}: ${FILE}")
|
||||
# build file list
|
||||
STRING(REPLACE "$(Configuration)" "RelWithDebInfo" FILE ${FILE})
|
||||
|
Reference in New Issue
Block a user