Просмотр исходного кода

add sperfdata function which can handle threshold ranges

Gerhard Lausser 10 лет назад
Родитель
Сommit
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;
 }
 
+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 */
 void strntolower (char * test_char, int size) {