Code

Cater for different errors when setting thresholds
authorTon Voon <tonvoon@users.sourceforge.net>
Wed, 18 Oct 2006 12:03:10 +0000 (12:03 +0000)
committerTon Voon <tonvoon@users.sourceforge.net>
Wed, 18 Oct 2006 12:03:10 +0000 (12:03 +0000)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1496 f882894a-f735-0410-b71e-b25c423dba1c

lib/utils_base.c
lib/utils_base.h

index 3dae32fbf337636a2b953affa9414cb7fb0697c6..18fb3f25143559134128036c286555f0d0505d56 100644 (file)
@@ -96,12 +96,12 @@ _set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_st
 
        if (warn_string != NULL) {
                if ((temp_thresholds->warning = parse_range_string(warn_string)) == NULL) {
-                       return 1;
+                       return NP_RANGE_UNPARSEABLE;
                }
        }
        if (critical_string != NULL) {
                if ((temp_thresholds->critical = parse_range_string(critical_string)) == NULL) {
-                       return 1;
+                       return NP_RANGE_UNPARSEABLE;
                }
        }
 
@@ -117,10 +117,14 @@ _set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_st
 void
 set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_string)
 {
-       if (_set_thresholds(my_thresholds, warn_string, critical_string) == 0) {
+       switch (_set_thresholds(my_thresholds, warn_string, critical_string)) {
+       case 0:
                return;
-       } else {
+       case NP_RANGE_UNPARSEABLE:
                die(STATE_UNKNOWN, _("Range format incorrect"));
+       case NP_WARN_WITHIN_CRIT:
+               die(STATE_UNKNOWN, _("Warning level is a subset of critical and will not be alerted"));
+               break;
        }
 }
 
index 113e3043a589518c757cd073da45785d68b3f02b..44ed0a37adcab4af286b249849e8e4c3a02fdd8f 100644 (file)
@@ -38,4 +38,8 @@ char *np_escaped_string (const char *);
 
 void die (int, const char *, ...) __attribute__((noreturn,format(printf, 2, 3)));
 
+/* Return codes for _set_thresholds */
+#define NP_RANGE_UNPARSEABLE 1
+#define NP_WARN_WITHIN_CRIT 2
+
 #endif /* _UTILS_BASE_ */