40 lines
1.9 KiB
ObjectPascal
40 lines
1.9 KiB
ObjectPascal
struct st_mysql_client_plugin
|
|
{
|
|
int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(void); int (*options)(const char *option, const void *);
|
|
};
|
|
struct st_mysql;
|
|
#include "plugin_auth_common.h"
|
|
typedef struct st_plugin_vio_info
|
|
{
|
|
enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET,
|
|
MYSQL_VIO_PIPE, MYSQL_VIO_MEMORY } protocol;
|
|
int socket;
|
|
} MYSQL_PLUGIN_VIO_INFO;
|
|
typedef struct st_plugin_vio
|
|
{
|
|
int (*read_packet)(struct st_plugin_vio *vio,
|
|
unsigned char **buf);
|
|
int (*write_packet)(struct st_plugin_vio *vio,
|
|
const unsigned char *packet,
|
|
int packet_len);
|
|
void (*info)(struct st_plugin_vio *vio, struct st_plugin_vio_info *info);
|
|
} MYSQL_PLUGIN_VIO;
|
|
struct st_mysql_client_plugin_AUTHENTICATION
|
|
{
|
|
int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(void); int (*options)(const char *option, const void *);
|
|
int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql);
|
|
};
|
|
struct st_mysql_client_plugin *
|
|
mysql_load_plugin(struct st_mysql *mysql, const char *name, int type,
|
|
int argc, ...);
|
|
struct st_mysql_client_plugin *
|
|
mysql_load_plugin_v(struct st_mysql *mysql, const char *name, int type,
|
|
int argc, va_list args);
|
|
struct st_mysql_client_plugin *
|
|
mysql_client_find_plugin(struct st_mysql *mysql, const char *name, int type);
|
|
struct st_mysql_client_plugin *
|
|
mysql_client_register_plugin(struct st_mysql *mysql,
|
|
struct st_mysql_client_plugin *plugin);
|
|
int mysql_plugin_options(struct st_mysql_client_plugin *plugin,
|
|
const char *option, const void *value);
|