aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/utils_base.c12
-rw-r--r--lib/utils_base.h4
2 files changed, 12 insertions, 4 deletions
diff --git a/lib/utils_base.c b/lib/utils_base.c
index 3dae32fb..18fb3f25 100644
--- a/lib/utils_base.c
+++ b/lib/utils_base.c
@@ -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;
}
}
diff --git a/lib/utils_base.h b/lib/utils_base.h
index 113e3043..44ed0a37 100644
--- a/lib/utils_base.h
+++ b/lib/utils_base.h
@@ -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_ */