From 71ce143ab1cac10b974084a21653b71bee68fe55 Mon Sep 17 00:00:00 2001 From: Ton Voon Date: Thu, 15 Dec 2005 17:06:55 +0000 Subject: Display errors with slave queries correctly. Added extra tests for slaves git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1299 f882894a-f735-0410-b71e-b25c423dba1c --- plugins/check_mysql.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'plugins/check_mysql.c') diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 3194eced..45f86a9c 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c @@ -53,6 +53,7 @@ main (int argc, char **argv) /* should be status */ char *result = NULL; + char *error = NULL; char slaveresult[SLAVERESULTSIZE]; setlocale (LC_ALL, ""); @@ -99,21 +100,30 @@ main (int argc, char **argv) if(check_slave) { /* check the slave status */ if (mysql_query (&mysql, "show slave status") != 0) { + error = strdup(mysql_error(&mysql)); mysql_close (&mysql); - die (STATE_CRITICAL, _("slave query error: %s\n"), mysql_error (&mysql)); + die (STATE_CRITICAL, _("slave query error: %s\n"), error); } /* store the result */ if ( (res = mysql_store_result (&mysql)) == NULL) { + error = strdup(mysql_error(&mysql)); mysql_close (&mysql); - die (STATE_CRITICAL, _("slave store_result error: %s\n"), mysql_error (&mysql)); + die (STATE_CRITICAL, _("slave store_result error: %s\n"), error); + } + + /* Check there is some data */ + if (mysql_num_rows(res) == 0) { + mysql_close(&mysql); + die (STATE_WARNING, "%s\n", _("No slaves defined")); } /* fetch the first row */ if ( (row = mysql_fetch_row (res)) == NULL) { + error = strdup(mysql_error(&mysql)); mysql_free_result (res); mysql_close (&mysql); - die (STATE_CRITICAL, _("slave fetch row error: %s\n"), mysql_error (&mysql)); + die (STATE_CRITICAL, _("slave fetch row error: %s\n"), error); } if (mysql_field_count (&mysql) == 12) { -- cgit v1.2.3