diff options
Diffstat (limited to 'plugins/utils.c')
-rw-r--r-- | plugins/utils.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index 5c809ece..aad30068 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -497,3 +497,47 @@ strpcat (char *dest, const char *src, const char *str) return dest; } + + + + +/****************************************************************************** + * + * Print perfdata in a standard format + * + ******************************************************************************/ + +char *perfdata (const char *label, + long int val, + const char *uom, + int warnp, + long int warn, + int critp, + long int crit, + int minp, + long int minv, + int maxp, + long int maxv) +{ + char *data = NULL; + + asprintf (&data, "\"%s\"=%ld%s;", label, val, uom); + + if (warnp) + asprintf (&data, "%s%ld;", data, warn); + else + asprintf (&data, "%s;", data); + + if (critp) + asprintf (&data, "%s%ld;", data, crit); + else + asprintf (&data, "%s;", data); + + if (minp) + asprintf (&data, "%s%ld", data, minv); + + if (maxp) + asprintf (&data, "%s;%ld", data, maxv); + + return data; +} |