From caca7a50fdaaf447c7c5b9fd28a26b51f1ca1f2d Mon Sep 17 00:00:00 2001 From: Thomas Guyot-Sionnest Date: Fri, 23 Nov 2007 04:18:16 +0000 Subject: Add a max_state_alt function that put UNKNOWN and DEPENDENT ahead of OK. git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1829 f882894a-f735-0410-b71e-b25c423dba1c --- plugins/utils.c | 27 +++++++++++++++++++++++++++ plugins/utils.h | 1 + 2 files changed, 28 insertions(+) diff --git a/plugins/utils.c b/plugins/utils.c index 0e79fbdb..88b44114 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -53,6 +53,33 @@ max_state (int a, int b) return max (a, b); } +/* ************************************************************************** + * max_state_alt(STATE_x, STATE_y) + * compares STATE_x to STATE_y and returns result based on the following + * STATE_OK < STATE_DEPENDENT < STATE_UNKNOWN < STATE_WARNING < STATE_CRITICAL + * + * The main difference between max_state_alt and max_state it that it doesn't + * allow setting a default to UNKNOWN. It will instead prioritixe any valid + * non-OK state. + ****************************************************************************/ + +int +max_state_alt (int a, int b) +{ + if (a == STATE_CRITICAL || b == STATE_CRITICAL) + return STATE_CRITICAL; + else if (a == STATE_WARNING || b == STATE_WARNING) + return STATE_WARNING; + else if (a == STATE_UNKNOWN || b == STATE_UNKNOWN) + return STATE_UNKNOWN; + else if (a == STATE_DEPENDENT || b == STATE_DEPENDENT) + return STATE_DEPENDENT; + else if (a == STATE_OK || b == STATE_OK) + return STATE_OK; + else + return max (a, b); +} + void usage (const char *msg) { printf ("%s\n", msg); diff --git a/plugins/utils.h b/plugins/utils.h index f15a7b16..bb99ee16 100644 --- a/plugins/utils.h +++ b/plugins/utils.h @@ -76,6 +76,7 @@ char *strpcpy (char *, const char *, const char *); char *strpcat (char *, const char *, const char *); int max_state (int a, int b); +int max_state_alt (int a, int b); void usage (const char *) __attribute__((noreturn)); void usage2(const char *, const char *) __attribute__((noreturn)); -- cgit v1.2.3