1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

5.5 merge

This commit is contained in:
Sergei Golubchik
2013-03-27 23:41:02 +01:00
627 changed files with 17021 additions and 18027 deletions

View File

@ -141,13 +141,14 @@ mysql_load_plugin
mysql_load_plugin_v
mysql_plugin_options
# Async API
mysql_get_timeout_value
mysql_get_timeout_value_ms
mysql_get_socket
mysql_autocommit_cont
mysql_autocommit_start
mysql_change_user_cont
mysql_change_user_start
mysql_close_cont
mysql_close_slow_part_cont
mysql_close_slow_part_start
mysql_close_start
mysql_commit_cont
mysql_commit_start
@ -262,17 +263,26 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
IF(RPM)
# Fedora & Co declared following functions as part of API
# These functions are alias of another function (given mysql_ prefix=. The
# renaming is handled in rpm_support.cc below
SET(CLIENT_API_EXTRA
mysql_default_charset_info
mysql_get_charset
mysql_get_charset_by_csname
mysql_net_realloc
mysql_client_errors
)
# Also export the non-renamed variants
# (in case someone wants to rebuild mysqli-php or something similar)
# See MDEV-4127
default_charset_info
get_charset
get_charset_by_csname
net_realloc
client_errors
THR_KEY_mysys
)
# Add special script to fix symbols renames by Fedora
SET(CLIENT_SOURCES_EXTRA ${CLIENT_SOURCES} rpm_support.cc)
SET(CLIENT_SOURCES_EXTRA rpm_support.cc)
SET(VERSION_SCRIPT_TEMPLATE
${CMAKE_CURRENT_SOURCE_DIR}/libmysql_rpm_version.in)
ELSEIF(DEB)
@ -361,7 +371,7 @@ IF(UNIX)
ENDIF()
IF(NOT DISABLE_SHARED)
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} COMPONENT SharedLibraries)
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_EXTRA} COMPONENT SharedLibraries)
IF(UNIX)
# libtool compatability
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)

View File

@ -62,13 +62,35 @@
/* were just going to fake it here and get input from the keyboard */
void get_tty_password_buff(const char *opt_message, char *to, size_t length)
{
HANDLE consoleinput;
DWORD oldstate;
char *pos=to,*end=to+length-1;
int i=0;
consoleinput= CreateFile("CONIN$", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ ,
NULL, OPEN_EXISTING, 0, NULL);
if (consoleinput == NULL || consoleinput == INVALID_HANDLE_VALUE)
{
/* This is a GUI application or service without console input, bail out. */
*to= 0;
return;
}
_cputs(opt_message ? opt_message : "Enter password: ");
/*
Switch to raw mode (no line input, no echo input).
Allow Ctrl-C handler with ENABLE_PROCESSED_INPUT.
*/
GetConsoleMode(consoleinput, &oldstate);
SetConsoleMode(consoleinput, ENABLE_PROCESSED_INPUT);
for (;;)
{
int tmp;
tmp=_getch();
char tmp;
DWORD chars_read;
if (!ReadConsole(consoleinput, &tmp, 1, &chars_read, NULL))
break;
if (chars_read == 0)
break;
if (tmp == '\b' || tmp == 127)
{
if (pos != to)
@ -78,13 +100,16 @@ void get_tty_password_buff(const char *opt_message, char *to, size_t length)
continue;
}
}
if (tmp == -1 || tmp == '\n' || tmp == '\r' || tmp == 3)
if (tmp == '\n' || tmp == '\r')
break;
if (iscntrl(tmp) || pos == end)
continue;
_cputs("*");
*(pos++) = (char)tmp;
*(pos++) = tmp;
}
/* Reset console mode after password input. */
SetConsoleMode(consoleinput, oldstate);
CloseHandle(consoleinput);
*pos=0;
_cputs("\n");
}

View File

@ -21,6 +21,8 @@ libmysqlclient_16 {
my_print_help;
# pure-ftpd requires this
my_make_scrambled_password;
# fedora18 export
THR_KEY_mysys;
# hydra requires this
scramble;
# DBD::mysql requires this
@ -34,15 +36,27 @@ libmysqlclient_18 {
@CLIENT_API_5_5_LIST@
#
# Ideally the following symbols wouldn't be exported, but various applications
# require them. We limit the namespace damage by prefixing mysql_
# require them. Fedora limits the namespace damage by prefixing mysql_
# (see mysql-dubious-exports.patch), which means the symbols are not present
# in libmysqlclient_16.
#
# MariaDB does not do the Fedora-style function renaming via #define in headers,
# however it exports mysql_ prefixed symbols in addition to the "normal" ones.
#
# To ensure successful recompilation of affected projects, as well as drop-in replacement
# for MySQL libraries, provided by distribution, both original symbols and their mysql_
# prefixed counterparts have to be exported.
# mysql-connector-odbc requires these
mysql_default_charset_info;
mysql_get_charset;
mysql_get_charset_by_csname;
mysql_net_realloc;
default_charset_info;
get_charset;
get_charset_by_csname;
net_realloc;
# PHP's mysqli.so requires this (via the ER() macro)
mysql_client_errors;
client_errors;
};