summaryrefslogtreecommitdiff
path: root/include/mysql/client_plugin.h
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-07-12 14:34:47 +0200
committerSergei Golubchik <sergii@pisem.net>2011-07-12 14:34:47 +0200
commitc97f938bcf53d7c3b65e7ac8020857cae5813b6f (patch)
tree1031fe015a9ec5651bfb9f62b3b20339eda6d86d /include/mysql/client_plugin.h
parent55d13e8dc72eb10d266762f413dabf4b5b887713 (diff)
downloadmariadb-git-c97f938bcf53d7c3b65e7ac8020857cae5813b6f.tar.gz
move authentication_windows_client and mysql_clear_password clear client auth plugins
out of libmysql into separate dynamic plugins in the plugin/ directory. move dialog and auth_socket plugins out of the plugin directory with examples into dedicated directories in plugin/
Diffstat (limited to 'include/mysql/client_plugin.h')
-rw-r--r--include/mysql/client_plugin.h44
1 files changed, 26 insertions, 18 deletions
diff --git a/include/mysql/client_plugin.h b/include/mysql/client_plugin.h
index 6af0d226ea2..eb1c74d7c0b 100644
--- a/include/mysql/client_plugin.h
+++ b/include/mysql/client_plugin.h
@@ -23,6 +23,30 @@
*/
#define MYSQL_CLIENT_PLUGIN_INCLUDED
+/*
+ On Windows, exports from DLL need to be declared
+ Also, plugin needs to be declared as extern "C" because MSVC
+ unlike other compilers, uses C++ mangling for variables not only
+ for functions.
+*/
+#if defined(_MSC_VER)
+#if defined(MYSQL_DYNAMIC_PLUGIN)
+ #ifdef __cplusplus
+ #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
+ #else
+ #define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
+ #endif
+#else /* MYSQL_DYNAMIC_PLUGIN */
+ #ifdef __cplusplus
+ #define MYSQL_PLUGIN_EXPORT extern "C"
+ #else
+ #define MYSQL_PLUGIN_EXPORT
+ #endif
+#endif /*MYSQL_DYNAMIC_PLUGIN */
+#else /*_MSC_VER */
+#define MYSQL_PLUGIN_EXPORT
+#endif
+
#ifndef MYSQL_ABI_CHECK
#include <stdarg.h>
#include <stdlib.h>
@@ -74,24 +98,8 @@ struct st_mysql_client_plugin_AUTHENTICATION
int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql);
};
-/**
- type of the mysql_authentication_dialog_ask function
-
- @param mysql mysql
- @param type type of the input
- 1 - ordinary string input
- 2 - password string
- @param prompt prompt
- @param buf a buffer to store the use input
- @param buf_len the length of the buffer
-
- @retval a pointer to the user input string.
- It may be equal to 'buf' or to 'mysql->password'.
- In all other cases it is assumed to be an allocated
- string, and the "dialog" plugin will free() it.
-*/
-typedef char *(*mysql_authentication_dialog_ask_t)(struct st_mysql *mysql,
- int type, const char *prompt, char *buf, int buf_len);
+#include <mysql/auth_dialog_client.h>
+
/******** using plugins ************/
/**