diff options
Diffstat (limited to 'plugins/utils.c')
-rw-r--r-- | plugins/utils.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index 4b3c0c87..a864e4aa 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
@@ -628,3 +628,43 @@ char *fperfdata (const char *label, | |||
628 | 628 | ||
629 | return data; | 629 | return data; |
630 | } | 630 | } |
631 | |||
632 | char *sperfdata (const char *label, | ||
633 | double val, | ||
634 | const char *uom, | ||
635 | char *warn, | ||
636 | char *crit, | ||
637 | int minp, | ||
638 | double minv, | ||
639 | int maxp, | ||
640 | double maxv) | ||
641 | { | ||
642 | char *data = NULL; | ||
643 | if (strpbrk (label, "'= ")) | ||
644 | xasprintf (&data, "'%s'=", label); | ||
645 | else | ||
646 | xasprintf (&data, "%s=", label); | ||
647 | |||
648 | xasprintf (&data, "%s%f", data, val); | ||
649 | xasprintf (&data, "%s%s;", data, uom); | ||
650 | |||
651 | if (warn!=NULL) | ||
652 | xasprintf (&data, "%s%s", data, warn); | ||
653 | |||
654 | xasprintf (&data, "%s;", data); | ||
655 | |||
656 | if (crit!=NULL) | ||
657 | xasprintf (&data, "%s%s", data, crit); | ||
658 | |||
659 | xasprintf (&data, "%s;", data); | ||
660 | |||
661 | if (minp) | ||
662 | xasprintf (&data, "%s%f", data, minv); | ||
663 | |||
664 | if (maxp) { | ||
665 | xasprintf (&data, "%s;", data); | ||
666 | xasprintf (&data, "%s%f", data, maxv); | ||
667 | } | ||
668 | |||
669 | return data; | ||
670 | } | ||