summaryrefslogtreecommitdiff
path: root/sql/sql_audit.h
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@askmonty.org>2020-08-14 21:04:25 +0400
committerAlexey Botchkov <holyfoot@askmonty.org>2020-08-14 21:04:25 +0400
commitb01c426146710f1c24ab75e2ffcd953feac08882 (patch)
treeae4d31f7391458b8b66fbef5472b337a5ab4636e /sql/sql_audit.h
parent68cba09173a49185c02d5b57a5a241f102257fea (diff)
downloadmariadb-git-b01c426146710f1c24ab75e2ffcd953feac08882.tar.gz
MDEV-19275 Provide SQL service to plugins.
Protocol_local fixed so it can be used now. Some Protocol:: methods made virtual so they can adapt. as well as net_ok and net_send_error functions. execute_sql_string function is exported to the plugins. To be changed with the mysql_use_result.
Diffstat (limited to 'sql/sql_audit.h')
-rw-r--r--sql/sql_audit.h29
1 files changed, 15 insertions, 14 deletions
diff --git a/sql/sql_audit.h b/sql/sql_audit.h
index 97317203e34..40276c86a78 100644
--- a/sql/sql_audit.h
+++ b/sql/sql_audit.h
@@ -254,35 +254,36 @@ void mysql_audit_notify_connection_disconnect(THD *thd, int errcode)
}
static inline
-void mysql_audit_notify_connection_change_user(THD *thd)
+void mysql_audit_notify_connection_change_user(THD *thd,
+ const Security_context *old_ctx)
{
if (mysql_audit_connection_enabled())
{
- const Security_context *sctx= thd->security_ctx;
mysql_event_connection event;
event.event_subclass= MYSQL_AUDIT_CONNECTION_CHANGE_USER;
event.status= thd->get_stmt_da()->is_error() ?
thd->get_stmt_da()->sql_errno() : 0;
event.thread_id= (unsigned long)thd->thread_id;
- event.user= sctx->user;
- event.user_length= safe_strlen_uint(sctx->user);
- event.priv_user= sctx->priv_user;
- event.priv_user_length= strlen_uint(sctx->priv_user);
- event.external_user= sctx->external_user;
- event.external_user_length= safe_strlen_uint(sctx->external_user);
- event.proxy_user= sctx->proxy_user;
- event.proxy_user_length= strlen_uint(sctx->proxy_user);
- event.host= sctx->host;
- event.host_length= safe_strlen_uint(sctx->host);
- event.ip= sctx->ip;
- event.ip_length= safe_strlen_uint(sctx->ip);
+ event.user= old_ctx->user;
+ event.user_length= safe_strlen_uint(old_ctx->user);
+ event.priv_user= old_ctx->priv_user;
+ event.priv_user_length= strlen_uint(old_ctx->priv_user);
+ event.external_user= old_ctx->external_user;
+ event.external_user_length= safe_strlen_uint(old_ctx->external_user);
+ event.proxy_user= old_ctx->proxy_user;
+ event.proxy_user_length= strlen_uint(old_ctx->proxy_user);
+ event.host= old_ctx->host;
+ event.host_length= safe_strlen_uint(old_ctx->host);
+ event.ip= old_ctx->ip;
+ event.ip_length= safe_strlen_uint(old_ctx->ip);
event.database= thd->db;
mysql_audit_notify(thd, MYSQL_AUDIT_CONNECTION_CLASS, &event);
}
}
+
static inline
void mysql_audit_external_lock_ex(THD *thd, my_thread_id thread_id,
const char *user, const char *host, const char *ip, query_id_t query_id,