summaryrefslogtreecommitdiffstats
path: root/lib/output.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output.c')
-rw-r--r--lib/output.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/lib/output.c b/lib/output.c
index 9bcd02d9..b1e91231 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -105,6 +105,7 @@ static inline char *fmt_subcheck_perfdata(mp_subcheck check) {
105 */ 105 */
106mp_check mp_check_init(void) { 106mp_check mp_check_init(void) {
107 mp_check check = { 107 mp_check check = {
108 .ok_summary = NULL,
108 .evaluation_function = &mp_eval_check_default, 109 .evaluation_function = &mp_eval_check_default,
109 .default_output_override = NULL, 110 .default_output_override = NULL,
110 .default_output_override_content = NULL, 111 .default_output_override_content = NULL,
@@ -212,6 +213,14 @@ int mp_add_subcheck_to_subcheck(mp_subcheck check[static 1], mp_subcheck subchec
212void mp_set_summary(mp_check check[static 1], char *summary) { check->summary = strdup(summary); } 213void mp_set_summary(mp_check check[static 1], char *summary) { check->summary = strdup(summary); }
213 214
214/* 215/*
216 * set the summary for the OK state
217 * this allows to set the content in the first line of the plugin
218 * if the overall state is OK
219 */
220void mp_set_ok_summary(mp_check check[static 1], char *ok_summary) {
221 check->ok_summary = strdup(ok_summary);
222}
223/*
215 * Generate the summary string of a mp_check object based on its subchecks 224 * Generate the summary string of a mp_check object based on its subchecks
216 */ 225 */
217char *get_subcheck_summary(mp_check check) { 226char *get_subcheck_summary(mp_check check) {
@@ -255,21 +264,12 @@ char *get_subcheck_summary(mp_check check) {
255 } 264 }
256 265
257 if (result == NULL) { 266 if (result == NULL) {
258 if (ok_count > 0) { 267 // Nothing in result yet, we must be in an OK state
268 if (check.ok_summary != NULL) {
269 asprintf(&result, "%s", check.ok_summary);
270 } else if (ok_count > 0) {
259 asprintf(&result, "ok=%d", ok_count); 271 asprintf(&result, "ok=%d", ok_count);
260 } 272 }
261
262 if (warning_count > 0) {
263 asprintf(&result, "%swarning=%d", (result == NULL ? "" : ", "), warning_count);
264 }
265
266 if (critical_count > 0) {
267 asprintf(&result, "%scritical=%d", (result == NULL ? "" : ", "), critical_count);
268 }
269
270 if (unknown_count > 0) {
271 asprintf(&result, "%sunknown=%d", (result == NULL ? "" : ", "), unknown_count);
272 }
273 } 273 }
274 274
275 return result; 275 return result;