From deeb29c7ded32f6af3c5fbadba7fe04cddfc0b8f Mon Sep 17 00:00:00 2001 From: Ton Voon Date: Wed, 25 Jun 2003 13:28:05 +0000 Subject: Report errors if path specified not found git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@555 f882894a-f735-0410-b71e-b25c423dba1c --- plugins/check_disk.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 62858b5f..585c4a66 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c @@ -106,6 +106,7 @@ static int require_sync = 0; struct name_list { char *name; + int found; struct name_list *name_next; }; @@ -190,6 +191,7 @@ main (int argc, char **argv) struct mount_entry *me; struct fs_usage fsp; + struct name_list *temp_list; char *disk; mount_list = read_filesystem_list (0); @@ -252,6 +254,16 @@ main (int argc, char **argv) if (verbose > 2) asprintf (&output, "%s%s", output, details); + /* Override result if paths specified and not found */ + temp_list = path_select_list; + while (temp_list) { + if (temp_list->found != TRUE) { + asprintf (&output, "%s [%s not found]", output, temp_list->name); + result = STATE_CRITICAL; + } + temp_list = temp_list->name_next; + } + terminate (result, "DISK %s%s\n", state_text (result), output, details); } @@ -369,7 +381,7 @@ process_arguments (int argc, char **argv) mult = (unsigned long)1024 * 1024 * 1024 * 1024; units = "TB"; } else { - terminate (STATE_UNKNOWN, "unit type %s not known", optarg); + terminate (STATE_UNKNOWN, "unit type %s not known\n", optarg); } break; case 'k': /* display mountpoint */ @@ -383,7 +395,7 @@ process_arguments (int argc, char **argv) case 'l': show_local_fs = 1; break; - case 'p': /* selec path */ + case 'p': /* select path */ se = (struct name_list *) malloc (sizeof (struct name_list)); se->name = strdup (optarg); se->name_next = NULL; @@ -504,8 +516,10 @@ int walk_name_list (struct name_list *list, const char *name) { while (list) { - if (! strcmp(list->name, name)) + if (! strcmp(list->name, name)) { + list->found = 1; return TRUE; + } list = list->name_next; } return FALSE; -- cgit v1.2.3-74-g34f1