summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@sun.com>2010-04-15 13:36:36 +0400
committerSergey Vojtovich <svoj@sun.com>2010-04-15 13:36:36 +0400
commita2ed9137cc7b8cd6abd8d197195a84301b00d0fe (patch)
tree1d3754e7298cb0a8f2089705931dbc3fbbd3e20a /plugin
parent1c4e27a8f6774c65f15b2da2bb348af24e7c5c46 (diff)
parente43e59833f4d39188f8af3ba5d921023fedd28e0 (diff)
downloadmariadb-git-a2ed9137cc7b8cd6abd8d197195a84301b00d0fe.tar.gz
Merge fixes for BUG46587 and BUG47059 to trunk-bugfixing.
Diffstat (limited to 'plugin')
-rw-r--r--plugin/audit_null/audit_null.c48
1 files changed, 38 insertions, 10 deletions
diff --git a/plugin/audit_null/audit_null.c b/plugin/audit_null/audit_null.c
index 52a9df08cf4..e0c53ed0f19 100644
--- a/plugin/audit_null/audit_null.c
+++ b/plugin/audit_null/audit_null.c
@@ -22,6 +22,9 @@
#endif
static volatile int number_of_calls; /* for SHOW STATUS, see below */
+static volatile int number_of_calls_general_log;
+static volatile int number_of_calls_general_error;
+static volatile int number_of_calls_general_result;
/*
@@ -41,6 +44,9 @@ static volatile int number_of_calls; /* for SHOW STATUS, see below */
static int audit_null_plugin_init(void *arg __attribute__((unused)))
{
number_of_calls= 0;
+ number_of_calls_general_log= 0;
+ number_of_calls_general_error= 0;
+ number_of_calls_general_result= 0;
return(0);
}
@@ -60,7 +66,6 @@ static int audit_null_plugin_init(void *arg __attribute__((unused)))
static int audit_null_plugin_deinit(void *arg __attribute__((unused)))
{
- printf("audit_null was invoked %u times\n", number_of_calls);
return(0);
}
@@ -76,11 +81,29 @@ static int audit_null_plugin_deinit(void *arg __attribute__((unused)))
*/
static void audit_null_notify(MYSQL_THD thd __attribute__((unused)),
- const struct mysql_event *event
- __attribute__((unused)))
+ const struct mysql_event *event)
{
/* prone to races, oh well */
number_of_calls++;
+ if (event->event_class == MYSQL_AUDIT_GENERAL_CLASS)
+ {
+ const struct mysql_event_general *event_general=
+ (const struct mysql_event_general *) event;
+ switch (event_general->event_subclass)
+ {
+ case MYSQL_AUDIT_GENERAL_LOG:
+ number_of_calls_general_log++;
+ break;
+ case MYSQL_AUDIT_GENERAL_ERROR:
+ number_of_calls_general_error++;
+ break;
+ case MYSQL_AUDIT_GENERAL_RESULT:
+ number_of_calls_general_result++;
+ break;
+ default:
+ break;
+ }
+ }
}
@@ -90,10 +113,10 @@ static void audit_null_notify(MYSQL_THD thd __attribute__((unused)),
static struct st_mysql_audit audit_null_descriptor=
{
- MYSQL_AUDIT_INTERFACE_VERSION, /* interface version */
- NULL, /* release_thd function */
- audit_null_notify, /* notify function */
- { (unsigned long) -1 } /* class mask */
+ MYSQL_AUDIT_INTERFACE_VERSION, /* interface version */
+ NULL, /* release_thd function */
+ audit_null_notify, /* notify function */
+ { (unsigned long) MYSQL_AUDIT_GENERAL_CLASSMASK } /* class mask */
};
/*
@@ -102,8 +125,13 @@ static struct st_mysql_audit audit_null_descriptor=
static struct st_mysql_show_var simple_status[]=
{
- {"audit_null_called", (char *)&number_of_calls, SHOW_INT},
- {0,0,0}
+ { "Audit_null_called", (char *) &number_of_calls, SHOW_INT },
+ { "Audit_null_general_log", (char *) &number_of_calls_general_log, SHOW_INT },
+ { "Audit_null_general_error", (char *) &number_of_calls_general_error,
+ SHOW_INT },
+ { "Audit_null_general_result", (char *) &number_of_calls_general_result,
+ SHOW_INT },
+ { 0, 0, 0}
};
@@ -121,7 +149,7 @@ mysql_declare_plugin(audit_null)
PLUGIN_LICENSE_GPL,
audit_null_plugin_init, /* init function (when loaded) */
audit_null_plugin_deinit, /* deinit function (when unloaded) */
- 0x0001, /* version */
+ 0x0002, /* version */
simple_status, /* status variables */
NULL, /* system variables */
NULL