فهرست منبع

add sperfdata function which can handle threshold ranges

Gerhard Lausser 10 سال پیش
والد
کامیت
b0d24dfb28
1فایلهای تغییر یافته به همراه38 افزوده شده و 0 حذف شده
  1. 38 0
      plugins/utils.c

+ 38 - 0
plugins/utils.c

@@ -688,6 +688,44 @@ char *fperfdata (const char *label,
 	return data;
 	return data;
 }
 }
 
 
+char *sperfdata (const char *label,
+ double val,
+ const char *uom,
+ char *warn,
+ char *crit,
+ int minp,
+ double minv,
+ int maxp,
+ double maxv)
+{
+	char *data = NULL;
+	if (strpbrk (label, "'= "))
+		xasprintf (&data, "'%s'=", label);
+	else
+		xasprintf (&data, "%s=", label);
+
+	xasprintf (&data, "%s%f", data, val);
+	xasprintf (&data, "%s%s;", data, uom);
+
+	if (warn!=NULL)
+		xasprintf (&data, "%s%s", data, warn);
+
+	xasprintf (&data, "%s;", data);
+
+	if (crit!=NULL)
+		xasprintf (&data, "%s%s", data, crit);
+
+	xasprintf (&data, "%s;", data);
+
+	if (minp)
+		xasprintf (&data, "%s%f", data, minv);
+
+	if (maxp) {
+		xasprintf (&data, "%s;", data);
+		xasprintf (&data, "%s%f", data, maxv);
+	}
+
+	return data;
 /* set entire string to lower, no need to return as it works on string in place */
 /* set entire string to lower, no need to return as it works on string in place */
 void strntolower (char * test_char, int size) {
 void strntolower (char * test_char, int size) {