Skip to content

Commit

Permalink
MDEV-11904 Make Audit Plugin working with MySQL 8.0.
Browse files Browse the repository at this point in the history
        MySQL 8.0 basically inherits the 5.7 model, though some
        modeifications required for the plugin.
  • Loading branch information
Alexey Botchkov committed Feb 20, 2017
1 parent 6364adb commit 1b7aae9
Showing 1 changed file with 21 additions and 9 deletions.
30 changes: 21 additions & 9 deletions plugin/server_audit/server_audit.c
Expand Up @@ -2297,10 +2297,10 @@ typedef struct loc_system_variables
} LOC_SV;


static int init_done= 0;

static int server_audit_init(void *p __attribute__((unused)))
{
const void *my_hash_init_ptr;

if (!serv_ver)
{
#ifdef _WIN32
Expand All @@ -2309,11 +2309,16 @@ static int server_audit_init(void *p __attribute__((unused)))
serv_ver= server_version;
#endif /*_WIN32*/
}
my_hash_init_ptr= dlsym(RTLD_DEFAULT, "_my_hash_init");
if (!my_hash_init_ptr)
if (!mysql_57_started)
{
maria_above_5= 1;
my_hash_init_ptr= dlsym(RTLD_DEFAULT, "my_hash_init2");
const void *my_hash_init_ptr= dlsym(RTLD_DEFAULT, "_my_hash_init");
if (!my_hash_init_ptr)
{
maria_above_5= 1;
my_hash_init_ptr= dlsym(RTLD_DEFAULT, "my_hash_init2");
}
if (!my_hash_init_ptr)
return 1;
}

if(!(int_mysql_data_home= dlsym(RTLD_DEFAULT, "mysql_data_home")))
Expand All @@ -2322,7 +2327,7 @@ static int server_audit_init(void *p __attribute__((unused)))
int_mysql_data_home= &default_home;
}

if (!serv_ver || !my_hash_init_ptr)
if (!serv_ver)
return 1;

if (!started_mysql)
Expand Down Expand Up @@ -2402,6 +2407,7 @@ static int server_audit_init(void *p __attribute__((unused)))
if (logging)
start_logging();

init_done= 1;
return 0;
}

Expand All @@ -2417,6 +2423,10 @@ static int server_audit_init_mysql(void *p)

static int server_audit_deinit(void *p __attribute__((unused)))
{
if (!init_done)
return 0;

init_done= 0;
coll_free(&incl_user_coll);
coll_free(&excl_user_coll);

Expand Down Expand Up @@ -2839,13 +2849,15 @@ void __attribute__ ((constructor)) audit_plugin_so_init(void)
if (sc >= 24)
use_event_data_for_disconnect= 1;
}
else if (serv_ver[0] == '5' && serv_ver[2] == '7')
else if ((serv_ver[0] == '5' && serv_ver[2] == '7') ||
(serv_ver[0] == '8' && serv_ver[2] == '0'))
{
mysql_57_started= 1;
_mysql_plugin_declarations_[0].info= mysql_v4_descriptor;
use_event_data_for_disconnect= 1;
}
MYSQL_SYSVAR_NAME(loc_info).flags= PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC;
MYSQL_SYSVAR_NAME(loc_info).flags= PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL |
PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC;
}

memset(locinfo_ini_value, 'O', sizeof(locinfo_ini_value)-1);
Expand Down

0 comments on commit 1b7aae9

Please sign in to comment.