Commit d4731997 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-258 audit plugin only see queries if general log is enabled

parent 06365bf8
......@@ -8,9 +8,9 @@ select foobar;
ERROR 42S22: Unknown column 'foobar' in 'field list'
show status like 'audit_null%';
Variable_name Value
Audit_null_called 6
Audit_null_called 9
Audit_null_general_error 1
Audit_null_general_log 0
Audit_null_general_log 3
Audit_null_general_result 2
uninstall plugin audit_null;
Warnings:
......
if (!$ADT_NULL_SO) {
skip No NULL_AUDIT plugin;
}
......@@ -5,6 +6,7 @@ if (!$ADT_NULL_SO) {
set @old_global_general_log=@@global.general_log;
set global general_log=OFF;
--disable_ps_protocol
install plugin audit_null soname 'adt_null';
select 1;
......@@ -13,6 +15,7 @@ select foobar;
show status like 'audit_null%';
uninstall plugin audit_null;
--enable_ps_protocol
set global general_log=@old_global_general_log;
......@@ -1279,12 +1279,6 @@ bool LOGGER::general_log_write(THD *thd, enum enum_server_command command,
DBUG_ASSERT(thd);
lock_shared();
if (!opt_log)
{
unlock();
return 0;
}
user_host_len= make_user_name(thd, user_host_buff);
current_time= my_hrtime();
......@@ -1295,15 +1289,19 @@ bool LOGGER::general_log_write(THD *thd, enum enum_server_command command,
command_name[(uint) command].length,
query, query_length);
while (*current_handler)
error|= (*current_handler++)->
log_general(thd, current_time, user_host_buff,
user_host_len, thd->thread_id,
command_name[(uint) command].str,
command_name[(uint) command].length,
query, query_length,
thd->variables.character_set_client) || error;
unlock();
if (opt_log && log_command(thd, command))
{
lock_shared();
while (*current_handler)
error|= (*current_handler++)->
log_general(thd, current_time, user_host_buff,
user_host_len, thd->thread_id,
command_name[(uint) command].str,
command_name[(uint) command].length,
query, query_length,
thd->variables.character_set_client) || error;
unlock();
}
return error;
}
......@@ -5333,7 +5331,7 @@ bool general_log_write(THD *thd, enum enum_server_command command,
const char *query, uint query_length)
{
/* Write the message to the log if we want to log this king of commands */
if (logger.log_command(thd, command))
if (logger.log_command(thd, command) || mysql_audit_general_enabled())
return logger.general_log_write(thd, command, query, query_length);
return FALSE;
......
......@@ -53,6 +53,11 @@ static inline uint make_user_name(THD *thd, char *buf)
sctx->ip ? sctx->ip : "", "]", NullS) - buf;
}
static inline bool mysql_audit_general_enabled()
{
return mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK;
}
/**
Call audit plugins of GENERAL audit class, MYSQL_AUDIT_GENERAL_LOG subtype.
......@@ -72,8 +77,7 @@ void mysql_audit_general_log(THD *thd, time_t time,
const char *cmd, uint cmdlen,
const char *query, uint querylen)
{
#ifndef EMBEDDED_LIBRARY
if (mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK)
if (mysql_audit_general_enabled())
{
CHARSET_INFO *clientcs= thd ? thd->variables.character_set_client
: global_system_variables.character_set_client;
......@@ -82,7 +86,6 @@ void mysql_audit_general_log(THD *thd, time_t time,
0, time, user, userlen, cmd, cmdlen,
query, querylen, clientcs, 0);
}
#endif
}
/**
......@@ -101,8 +104,7 @@ static inline
void mysql_audit_general(THD *thd, uint event_subtype,
int error_code, const char *msg)
{
#ifndef EMBEDDED_LIBRARY
if (mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK)
if (mysql_audit_general_enabled())
{
time_t time= my_time(0);
uint msglen= msg ? strlen(msg) : 0;
......@@ -130,7 +132,6 @@ void mysql_audit_general(THD *thd, uint event_subtype,
error_code, time, user, userlen, msg, msglen,
query.str(), query.length(), query.charset(), rows);
}
#endif
}
#define MYSQL_AUDIT_NOTIFY_CONNECTION_CONNECT(thd) mysql_audit_notify(\
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment