diff options
| author | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-09-15 02:30:42 +0200 |
|---|---|---|
| committer | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-09-15 02:30:42 +0200 |
| commit | 5a2c1b2c3aeb99e7a703b0c5f6fe1a21d29b3be4 (patch) | |
| tree | 9b9b45a6a611c4f37cf5dd447b37f74e48d56c14 | |
| parent | eca9eaf9f5771e417366bd3dac0cd463f405eb70 (diff) | |
| download | monitoring-plugins-5a2c1b2c3aeb99e7a703b0c5f6fe1a21d29b3be4.tar.gz | |
Add output formatting option
| -rw-r--r-- | plugins/check_curl.c | 22 | ||||
| -rw-r--r-- | plugins/check_curl.d/check_curl_helpers.c | 2 | ||||
| -rw-r--r-- | plugins/check_curl.d/config.h | 3 |
3 files changed, 26 insertions, 1 deletions
diff --git a/plugins/check_curl.c b/plugins/check_curl.c index 6d50568f..fc704171 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c | |||
| @@ -139,6 +139,10 @@ int main(int argc, char **argv) { | |||
| 139 | 139 | ||
| 140 | const check_curl_config config = tmp_config.config; | 140 | const check_curl_config config = tmp_config.config; |
| 141 | 141 | ||
| 142 | if (config.output_format_is_set) { | ||
| 143 | mp_set_format(config.output_format); | ||
| 144 | } | ||
| 145 | |||
| 142 | check_curl_working_state working_state = config.initial_config; | 146 | check_curl_working_state working_state = config.initial_config; |
| 143 | 147 | ||
| 144 | mp_check overall = mp_check_init(); | 148 | mp_check overall = mp_check_init(); |
| @@ -828,7 +832,8 @@ check_curl_config_wrapper process_arguments(int argc, char **argv) { | |||
| 828 | AUTOMATIC_DECOMPRESSION, | 832 | AUTOMATIC_DECOMPRESSION, |
| 829 | COOKIE_JAR, | 833 | COOKIE_JAR, |
| 830 | HAPROXY_PROTOCOL, | 834 | HAPROXY_PROTOCOL, |
| 831 | STATE_REGEX | 835 | STATE_REGEX, |
| 836 | OUTPUT_FORMAT | ||
| 832 | }; | 837 | }; |
| 833 | 838 | ||
| 834 | static struct option longopts[] = { | 839 | static struct option longopts[] = { |
| @@ -875,6 +880,7 @@ check_curl_config_wrapper process_arguments(int argc, char **argv) { | |||
| 875 | {"enable-automatic-decompression", no_argument, 0, AUTOMATIC_DECOMPRESSION}, | 880 | {"enable-automatic-decompression", no_argument, 0, AUTOMATIC_DECOMPRESSION}, |
| 876 | {"cookie-jar", required_argument, 0, COOKIE_JAR}, | 881 | {"cookie-jar", required_argument, 0, COOKIE_JAR}, |
| 877 | {"haproxy-protocol", no_argument, 0, HAPROXY_PROTOCOL}, | 882 | {"haproxy-protocol", no_argument, 0, HAPROXY_PROTOCOL}, |
| 883 | {"output-format", required_argument, 0, OUTPUT_FORMAT}, | ||
| 878 | {0, 0, 0, 0}}; | 884 | {0, 0, 0, 0}}; |
| 879 | 885 | ||
| 880 | check_curl_config_wrapper result = { | 886 | check_curl_config_wrapper result = { |
| @@ -1301,6 +1307,18 @@ check_curl_config_wrapper process_arguments(int argc, char **argv) { | |||
| 1301 | /* print short usage statement if args not parsable */ | 1307 | /* print short usage statement if args not parsable */ |
| 1302 | usage5(); | 1308 | usage5(); |
| 1303 | break; | 1309 | break; |
| 1310 | case OUTPUT_FORMAT: { | ||
| 1311 | parsed_output_format parser = mp_parse_output_format(optarg); | ||
| 1312 | if (!parser.parsing_success) { | ||
| 1313 | // TODO List all available formats here, maybe add anothoer usage function | ||
| 1314 | printf("Invalid output format: %s\n", optarg); | ||
| 1315 | exit(STATE_UNKNOWN); | ||
| 1316 | } | ||
| 1317 | |||
| 1318 | result.config.output_format_is_set = true; | ||
| 1319 | result.config.output_format = parser.output_format; | ||
| 1320 | break; | ||
| 1321 | } | ||
| 1304 | } | 1322 | } |
| 1305 | } | 1323 | } |
| 1306 | 1324 | ||
| @@ -1602,6 +1620,8 @@ void print_help(void) { | |||
| 1602 | 1620 | ||
| 1603 | printf(UT_VERBOSE); | 1621 | printf(UT_VERBOSE); |
| 1604 | 1622 | ||
| 1623 | printf(UT_OUTPUT_FORMAT); | ||
| 1624 | |||
| 1605 | printf("\n"); | 1625 | printf("\n"); |
| 1606 | printf("%s\n", _("Notes:")); | 1626 | printf("%s\n", _("Notes:")); |
| 1607 | printf(" %s\n", _("This plugin will attempt to open an HTTP connection with the host.")); | 1627 | printf(" %s\n", _("This plugin will attempt to open an HTTP connection with the host.")); |
diff --git a/plugins/check_curl.d/check_curl_helpers.c b/plugins/check_curl.d/check_curl_helpers.c index ab43a1e1..c3c2ba55 100644 --- a/plugins/check_curl.d/check_curl_helpers.c +++ b/plugins/check_curl.d/check_curl_helpers.c | |||
| @@ -632,6 +632,8 @@ check_curl_config check_curl_config_init() { | |||
| 632 | 632 | ||
| 633 | .show_extended_perfdata = false, | 633 | .show_extended_perfdata = false, |
| 634 | .show_body = false, | 634 | .show_body = false, |
| 635 | |||
| 636 | .output_format_is_set = false, | ||
| 635 | }; | 637 | }; |
| 636 | 638 | ||
| 637 | snprintf(tmp.curl_config.user_agent, DEFAULT_BUFFER_SIZE, "%s/v%s (monitoring-plugins %s, %s)", | 639 | snprintf(tmp.curl_config.user_agent, DEFAULT_BUFFER_SIZE, "%s/v%s (monitoring-plugins %s, %s)", |
diff --git a/plugins/check_curl.d/config.h b/plugins/check_curl.d/config.h index 6100af3e..f51b2ee9 100644 --- a/plugins/check_curl.d/config.h +++ b/plugins/check_curl.d/config.h | |||
| @@ -108,6 +108,9 @@ typedef struct { | |||
| 108 | 108 | ||
| 109 | bool show_extended_perfdata; | 109 | bool show_extended_perfdata; |
| 110 | bool show_body; | 110 | bool show_body; |
| 111 | |||
| 112 | bool output_format_is_set; | ||
| 113 | mp_output_format output_format; | ||
| 111 | } check_curl_config; | 114 | } check_curl_config; |
| 112 | 115 | ||
| 113 | check_curl_config check_curl_config_init(); | 116 | check_curl_config check_curl_config_init(); |
